包括了push_back(),pop_back(),size(),clear(),insert(迭代器),erase(迭代器),erase(迭代器,尾元素的下一位迭代器)
添加元素只能使用push_back(),而不能在初始时直接使用vi[0]= ? 来添加元素的方法。
代码为:
#include<cstdio>
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> vi;
for(int i = 0; i < 5; i++)
vi.push_back(i);
//注意vi.end()是最后地址的下一位
for(vector<int>::iterator it = vi.begin(); it != vi.end(); it++)
printf("%d ", *it);
printf("\n");
vi.pop_back();
for(int i = 0; i < vi.size(); i++)
printf("%d ", vi[i]);
printf("\n");
vi.clear();
printf("执行vi.clear()后的 vi.size() = %d\n", vi.size());
vi.push_back(1);
vi.push_back(2);
vi.push_back(3);
vi.push_back(4);
vi.insert(vi.begin() + 1, 10);//插入到vi[1]的位置上去
printf("将10插入到vi[1]上后的vi为(只能插在一个迭代器位置上): ");
for(int i = 0; i < vi.size(); i++)
printf("%d ", vi[i]);
vi.erase(vi.begin()+1);//删除的是vi[1]
printf("\n执行vi.erase(vi.begin()+1)后的vi为: ");
for(int i = 0; i < vi.size(); i++)
printf("%d ", vi[i]);
//执行一个区间的删除时第二个参数是尾元素地址的下一位
vi.erase(vi.begin(), vi.begin()+1);
printf("\n执行vi.erase(vi.begin(), vi.begin()+1)后的vi为:");
for(int i = 0; i < vi.size(); i++)
printf("%d ", vi[i]);
return 0;
}
运行结果: