vector中常用的操作
•定义
1 vector v1(100);///初始化v可以存放100个整数2 vector v;///正常定义3 4 int main()5 {6 for(int i=1;i <= 5;++i)7 scanf("%d",&v1[i]);///当成数组使用8 }
•erase
1 v.erase(v.begin()+a);///删除a位置的数2 v.erase(v.begin()+a,v.begin()+b);///删除位置[a,b)的数
•sort
1 sort(v.begin(),v.end());2 sort(v.begin(),v.end(),cmp);///自定义排序规则3 sort(v.begin()+a,v.end()-b);///排序区间[a,v.size()-b)
•lower_bound() & upper_bound()
1 sort(v.begin(),v.end());///二分前保证v有序2 it=lower_bound(v.begin(),v.end(),25);3 if(it != v.end())///要确保找到4 index=it-v.begin();///v[index] = *it ≥ x
•unique()
1 sort(v.begin(),v.end());///去重前保证v有序2 ///假设位置[0,b]是所有的不重复数,那么unique(v.begin(),v.end())返回的是b+1位置的迭代器3 v.erase(unique(v.begin(),v.end()),v.end());