声明:
#include <iostream>#include <vector>using namespace std;struct air {int x, y;};int main() {vector<int> a = {1, 2, 3};vector<int> a2({1, 2, 3});vector<int> b[200];vector<air> c = {{1, 1}};return 0;}
size() |
返回实际大小 |
|---|---|
empty() |
判断是否为空 |
clear() |
清空 |
迭代器:
迭代器就像STL容器的“指针”,可以用星号*操作符解除引用。
一个保存int的vector的迭代器声明方法为:vector<int>::iterator it = a.begin()
vector的迭代器是“随机访问迭代器”,可以把vector的迭代器与一个整数相加减,其行为和指针的移动类似。可以把vector的两个迭代器相减,其结果也和指针相减类似,得到两个迭代器对应下标之间的距离。
begin/endbegin()函数返回指向vector中第一个元素的迭代器。例如a是一个非空的vector,则*a.begin()与a[0]的作用相同。
所有的容器都可以视作一个“前闭后开”的结构,end()函数返回vector的尾部,即第n 个元素再往后的“边界”。*a.end()与a[n]都是越界访问,其中n = a.size()。
#include <iostream>#include <vector>using namespace std;struct air {int x, y;};int main() {vector<int> a;for (int i = 1; i <= 5; i++)a.push_back(i);for (int i = 0; i < a.size(); i++)cout << a[i] << " ";cout << endl;for (auto t = a.begin(); t < a.end(); t++)cout << *t << " ";cout << endl;return 0;}
front/backfront()函数返回vector的第一个元素,等价于*a.begin()和a[0]。back()函数返回vector的最后一个元素,等价于*--a.end()和a[a.size() – 1]。
push_back()和pop_back()a.push_back(x)把元素x插入到vector a的尾部。b.pop_back()删除vector a的最后一个元素。
