c++ vector(向量)使用方法详解 (2).docx
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
C++中的`std::vector`是一种动态数组,是标准模板库(STL)的一部分,提供了高效且灵活的序列容器功能。它允许存储任意类型的元素,并且可以在运行时自动调整大小。以下是对`std::vector`使用方法的详细解释: ### 初始化 1. **默认初始化**:`vector<int> a(10);` 创建一个包含10个未指定值的整数向量。 2. **初始化并赋值**:`vector<int> a(10,1);` 创建一个包含10个值为1的整数向量。 3. **复制初始化**:`vector<int> a(b);` 将向量`b`的内容复制到`a`中。 4. **范围初始化**:`vector<int> a(b.begin(), b.begin()+3);` 从`b`的指定范围内创建一个新的向量`a`。 5. **从数组初始化**:`int b[7] = {...}; vector<int> a(b, b+7);` 使用数组`b`的内容初始化向量`a`。 ### 操作 1. **assign**:`a.assign(b.begin(), b.begin()+3);` 将`b`的前三个元素赋值给`a`;`a.assign(4,2);` 创建一个包含4个2的向量。 2. **back**:`a.back();` 返回向量的最后一个元素。 3. **front**:`a.front();` 返回向量的第一个元素。 4. **at**:`a.at(i);` 安全地返回第i个元素,如果索引越界会抛出异常。 5. **clear**:`a.clear();` 清空向量的所有元素。 6. **empty**:`a.empty();` 如果向量为空,返回`true`,否则返回`false`。 7. **pop_back**:`a.pop_back();` 删除向量的最后一个元素。 8. **erase**:`a.erase(a.begin()+1, a.begin()+3);` 删除从第二个到第三个元素(不包括第三个)。 9. **push_back**:`a.push_back(5);` 在向量末尾添加一个元素。 10. **insert**:`a.insert(a.begin()+1, 5);` 在指定位置插入一个元素;`a.insert(a.begin()+1, 3, 5);` 插入3个值为5的元素;`a.insert(a.begin()+1, b+3, b+6);` 从数组`b`的指定范围内插入元素。 11. **size**:`a.size();` 返回向量中元素的数量。 12. **capacity**:`a.capacity();` 返回向量当前能容纳的元素数量。 13. **resize**:`a.resize(10);` 调整向量大小,不足则填充默认值,超出则删除;`a.resize(10, 2);` 调整大小,不足则填充2。 14. **reserve**:`a.reserve(100);` 预分配空间,避免频繁扩展,提高效率。 15. **swap**:`a.swap(b);` 交换两个向量的内容。 16. **比较运算符**:`a == b`,`!=`,`>=`,`<=`,`>`,`<` 对向量进行比较。 ### 顺序访问 1. **迭代器**:可以使用迭代器遍历向量,例如`for(auto it = a.begin(); it != a.end(); ++it)`。 2. **下标访问**:`a[i]` 访问第i个元素,但要注意越界问题。 3. **范围for循环**:`for(int element : a)` C++11引入的新特性,遍历向量中的所有元素。 在实际编程中,`std::vector`因其灵活性和高效性而被广泛使用,无论是存储数据还是在算法中作为辅助结构。通过熟练掌握这些操作,开发者可以更好地利用`std::vector`来实现复杂的功能。
- 粉丝: 6756
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助