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());