C++ Vector使用示例代码分析

需积分: 5 0 下载量 173 浏览量 更新于2024-11-22 收藏 943B ZIP 举报
资源摘要信息:"C++ vector相关示例代码" 在C++编程语言中,vector是一个能够存放任意类型的动态数组,属于标准模板库(Standard Template Library,简称STL)中的一个容器。它能够存储连续的内存空间,允许在运行时动态的增加或减少元素的数量。vector由于其灵活性和方便性,在日常编程中被广泛使用。本示例将展示如何使用vector容器,包括创建、添加元素、遍历、删除元素以及如何使用其成员函数来管理数据。 ### 1. vector的创建和初始化 在C++中,可以使用多种方式创建和初始化vector对象: - 默认构造函数创建一个空的vector。 - 使用花括号初始化列表初始化vector。 - 通过拷贝已有的vector来创建新的vector。 - 使用迭代器范围构造vector。 示例代码如下: ```cpp #include <iostream> #include <vector> int main() { // 使用默认构造函数 std::vector<int> vec; // 使用花括号初始化列表 std::vector<int> vec_init{1, 2, 3, 4, 5}; // 拷贝构造函数 std::vector<int> vec_copy(vec_init); // 使用迭代器范围构造vector std::vector<int> vec_range(vec.begin(), vec.begin() + 3); return 0; } ``` ### 2. 添加元素 vector提供多种方式添加元素: - 使用`push_back()`成员函数在vector末尾添加元素。 - 使用`insert()`成员函数在指定位置插入元素。 - 使用`resize()`成员函数改变vector大小,若新大小大于原大小,则在末尾添加新元素。 示例代码如下: ```cpp // 继续main函数 vec.push_back(6); // 在末尾添加元素6 vec.insert(vec.begin(), 0); // 在开始位置插入元素0 // 调整vector大小,并在末尾添加元素7和8 vec.resize(vec.size() + 2, 7); vec.resize(10, 8); // 新大小为10,多出位置用8填充 return 0; ``` ### 3. 遍历vector 遍历vector中的元素可以使用多种方法: - 使用基于索引的循环。 - 使用范围for循环。 - 使用迭代器。 示例代码如下: ```cpp // 继续main函数 // 使用索引遍历 for(int i = 0; i < vec.size(); ++i) { std::cout << vec[i] << ' '; } // 使用范围for循环遍历 for(auto& elem : vec) { std::cout << elem << ' '; } // 使用迭代器遍历 for(auto it = vec.begin(); it != vec.end(); ++it) { std::cout << *it << ' '; } return 0; ``` ### 4. 删除元素 vector提供了几种删除元素的方法: - 使用`pop_back()`成员函数移除vector的最后一个元素。 - 使用`erase()`成员函数移除指定位置的元素或指定范围内的元素。 - 使用`clear()`成员函数清除所有元素。 示例代码如下: ```cpp // 继续main函数 vec.pop_back(); // 移除最后一个元素 // 使用erase删除元素,删除begin()到begin()+2范围内的元素 vec.erase(vec.begin(), vec.begin() + 2); // 清除所有元素 vec.clear(); return 0; ``` ### 5. 其他常用操作 vector提供很多其他有用的成员函数,例如: - `size()`返回vector中的元素数量。 - `capacity()`返回vector的容量,即不进行内存重新分配的情况下vector所能容纳的元素的最大数量。 - `empty()`检查vector是否为空。 - `reserve()`请求vector容量至少能容纳指定数量的元素。 示例代码如下: ```cpp // 继续main函数 int sz = vec.size(); // 获取元素数量 int cap = vec.capacity(); // 获取vector容量 bool is_empty = vec.empty(); // 检查vector是否为空 // 增加vector的容量为100 vec.reserve(100); return 0; ``` ### 结语 在C++中,vector是一个功能强大的容器,通过掌握其提供的各种操作,可以有效地进行数据的存储和管理。上述示例代码仅展示了部分常用操作,更多的细节和高级用法可在实际编程中进一步探索和应用。希望本示例能够帮助读者更好地理解和使用C++中的vector容器。