海沧区建设局网站市政处,中国网站为什么做的那么丑,做视频网站的上市公司,wordpress qq头像不显示在C STL中#xff0c;vector 是一个非常重要的容器#xff0c;它提供了动态数组的功能。以下是 vector 头文件中的一些常用函数及其使用方法和细节#xff0c;以及在算法竞赛中的使用细节和总结#xff1a;
1. 构造、析构、赋值
构造函数 (std::vector::vector): 可以无参…在C STL中vector 是一个非常重要的容器它提供了动态数组的功能。以下是 vector 头文件中的一些常用函数及其使用方法和细节以及在算法竞赛中的使用细节和总结
1. 构造、析构、赋值
构造函数 (std::vector::vector): 可以无参数构造一个空的 vector也可以指定大小或大小和初始值构造。vectorint v; // 默认构造
vectorint v(10); // 构造包含10个元素的vector值未定义
vectorint v(10, 1); // 构造包含10个元素的vector每个元素初始化为1
vectorint v(other.begin(), other.end()); // 构造一个包含other中所有元素的vector析构函数 (std::vector::~vector): 销毁 vector释放所有资源。赋值操作符 (std::vector::operator): 将一个 vector 的内容赋值给另一个 vector。vectorint v1 {1, 2, 3};
vectorint v2;
v2 v1; // v2现在包含v1的所有元素2. Iterators 迭代器
std::vector::begin: 返回指向 vector 开始的迭代器。std::vector::end: 返回指向 vector 结束的迭代器。std::vector::rbegin 和 std::vector::rend: 返回反向迭代器。
3. Capacity 容量
std::vector::size: 查询 vector 的大小。std::vector::max_size: 查询 vector 能容纳的最大元素数量。std::vector::resize: 改变 vector 的大小。v.resize(20); // 将vector大小改为20超出原大小的元素被默认构造
v.resize(20, 1); // 将vector大小改为20超出原大小的元素被初始化为1std::vector::capacity: 查询 vector 的容量。std::vector::empty: 检查 vector 是否为空。std::vector::reserve: 改变 vector 的容量但不改变其大小。std::vector::shrink_to_fit: 减小 vector 的容量以适应其大小C11。
4. Element access 元素访问
std::vector::operator[]: 通过下标访问元素。std::vector::at: 通过下标访问元素越界时抛出异常。std::vector::front: 访问第一个元素。std::vector::back: 访问最后一个元素。std::vector::data: 获取指向 vector 元素的指针C11。
5. Modifiers 内容修改
std::vector::assign: 替换 vector 的所有元素。std::vector::push_back: 在 vector 末尾添加一个元素。std::vector::pop_back: 删除 vector 的最后一个元素。std::vector::insert: 在指定位置插入元素。v.insert(v.begin() 1, 5, 50); // 在第二个位置插入5个50
v.insert(v.begin() 1, {1, 2, 3}); // 在第二个位置插入{1, 2, 3}std::vector::erase: 删除指定位置的元素或范围。v.erase(v.begin() 1); // 删除第二个元素
v.erase(v.begin() 1, v.begin() 3); // 删除从第二个到第三个不包括第三个的元素std::vector::swap: 交换两个 vector 的内容。std::vector::clear: 移除 vector 的所有元素。std::vector::emplace 和 std::vector::emplace_back: 构造元素而非复制或移动C11。
算法竞赛中的使用细节和总结
性能考虑vector 的 push_back 和 pop_back 操作通常非常快但如果需要频繁在 vector 的中间插入或删除元素可能会因为需要移动大量元素而导致性能下降。内存管理vector 会自动管理内存但了解其内部的内存分配策略如何时进行内存重新分配可以帮助优化性能。空间效率使用 reserve 可以避免不必要的内存重新分配提高空间效率。代码简洁vector 提供的迭代器和算法使得处理元素集合变得非常简洁。异常安全在竞赛中需要考虑代码的异常安全性vector 的操作通常是强异常安全的。
官方vector的更加详细的介绍如下
vector - C Reference
以上是对 vector 头文件中各种函数的详细介绍和使用方法以及在算法竞赛中的一些使用细节和总结。希望这些信息能帮助你更好地理解和使用 vector。