什么是vector
在 C++ 中,vector 是一个标准库容器,可用于存储和操作动态大小的数组。它包含在头文件 <vector> 中,并提供了以下常用方法:
- push_back(value):在 vector 尾部添加一个元素。
- pop_back():删除 vector 尾部的元素。
- size():返回 vector 中元素的数量。
- empty():如果 vector 中没有元素,则返回 true。
- clear():从 vector 中删除所有元素。
- at(index):返回 vector 中给定索引处的元素。
- front():返回 vector 中第一个元素。
- back():返回 vector 中最后一个元素。
- erase(begin, end):删除指定范围内的元素。
- insert(position, value):在指定位置插入一个元素。
例如,下面是一个使用 vector 存储整数的示例:
#include <iostream>
#include <vector>
int main() {
std::vector<int> v = {1, 2, 3};
v.push_back(4);
for (int i : v) {
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
上述代码将输出:1 2 3 4。
vector的构造函数
//空构造
std::vector<int> first; // empty vector of ints
//创建4个整型空间的大小,并且用100初始化
std::vector<int> second(4, 100); // four ints with value 100
//用迭代器构造
std::vector<int> third(second.begin(), second.end()); // iterating through second
//拷贝构造
std::vector<int> fourth(third); // a copy of third
迭代器
vector有两个版本的迭代器,一个是正向迭代器,一个是反向迭代器,他们的起始位置大概如上图所示。两个版本的迭代器使用方式一致
迭代器本质是对应类型的指针,如果vector<int>,那么迭代器本质就是一个int*指针,并且对vector一定要有一个整体认知,它就是一个动态数组。
模拟实现vector,有兴趣的小伙伴可以看看。