本文共 1617 字,大约阅读时间需要 5 分钟。
vector是STL中最常用的容器之一,类似于数组,但比数组更灵活,支持动态内存分配。与固定大小的数组不同,vector的大小可以动态变化,适合处理动态数据。
1.1.1 含头文件
使用vector前需要包含相应的头文件:
#includeusing namespace std;
1.1.2 vector的创建方式
vector可以通过多种方式创建:
vectorvalues; // 空双精度数组vector Arrs {1, 2, 3, 4, 5, 6, 7, 8, 9}; // 初始化整型数组vector Arrs2(Arrs.begin() + 2, Arrs.end() - 1); // 从第三个元素到倒数第二个元素vector Arrs3(5, 6.0f); // 创建浮点型数组,包含5个6.0f
1.2 vector成员函数
vector提供丰富的成员函数,支持基本操作如插入、删除、迭代等。
1.2.1 常用成员函数
begin() 和 end():返回首尾迭代器size():返回元素个数resize():调整容器大小empty():判断是否为空reverse():反转容器shrink_to_fit():优化内存push_back():在末尾添加元素pop_back():删除末尾元素erase():删除单个或多个元素clear():清空容器assign():从迭代器截取子数组1.2.2 常用成员函数示例
vector nums {1, 2, 3, 4, 5};nums.push_back(6); // 添加元素nums.pop_back(); // 删除元素 1.3数组片段截取
通过vector的成员函数实现数组片段截取:
vector Arrs {1, 2, 3, 4, 5};vector SubArrs = Arrs; // 复制整个数组vector Middle(Arrs.begin() + 1, Arrs.begin() + 3); // 截取第二、三个元素 #include#include using namespace std;// 函数描述:裁剪vector数组某一区间的元素到新的vector数组vector CutArrs(vector & Arrs, int begin, int end) { if (end > Arrs.size()) return {}; vector result; result.assign(Arrs.begin() + begin, Arrs.begin() + end); return result;}// 函数重载:使用迭代器作为起始和结束位置vector CutArrs(const_iterator begin, const_iterator end) { return vector (begin, end);}
以上代码展示了如何通过vector的成员函数实现数组片段的截取,以及如何将结果存储到另一个vector中。通过这种方式,可以方便地处理动态数据,提升代码的灵活性和可读性。
转载地址:http://fyzg.baihongyu.com/