6.1vector
(1).迭代器
vector<int>vi;
vi.push_back(3);
vi.push_back(4);
vector<int>::iterator it=vi.begin(); //定义迭代器,使用*it访问vector中元素
printf("%d ",*(it+1) //输出vi[1]
(2).
vi.begin() //数组首元素地址
vi.end() //尾元素的下一个元素的地址
(3).常用函数
vector<int>vi;
vi.push_back(3) //末尾添加一个元素,O(1)
vi.pop_back() //末尾删除一个元素,O(1)
vi.size() //返回元素个数
vi.clear() //清空vector
//指定位置插入,插入范围为[0,vi.size()-1 ] ,故不能用于插在尾部
vi.insert(it,x) //向vector的任意迭代器it处插入一个元素x,复杂度O(N)
vi.insert(vi.begin()+2,4) //将4插入vi[2]的位置
//指定位置删除
vi.erase(it) //删除单个元素
vi.erase(first,last) //删除[first,last)区间内的元素
6.2 set (内部自动有序且无重复元素)
set<int>st;
st.insert(2);
st.insert(3);
for(set<int>::iterator it=st.begin();it!=st.end();it++)
cout<<*it<<endl; //注意set不能用it<st.end()
set内元素自动递增排序,且自动去重
查找
set<int>::iterator it=st.find(2); //find函数返回set中值为2的元素的迭代器
//未找到时返回st.end()
删除
st.erase(it); //根据迭代器删除
st.erase(st.find(2));
st.erase(100) //根据元素值删除
st.erase(it1,it2) //根据迭代器进行区间删除,范围左闭右开