vector

 

vector中常用的操作

•定义

1 vector<int >v1(100);///初始化v可以存放100个整数
2 vector<int >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());

  

posted @ 2019-06-24 16:43  HHHyacinth  阅读(177)  评论(0编辑  收藏  举报