[STL]algorithm
1、sort
sort(p,p+n);//C风格数组p[n]
sort(ou.begin(),ou.end());//升序排序 sort(ou.rbegin(),ou.rend());//降序方法1:反向迭代器,最小元素放末端 sort(ou.begin(),ou.end(),is_bigger);//降序方法1:自定义比较函数 bool is_bigger(const int &a,const int &b){ return a>b; }
2、remove
remove()把不需要删除的元素往前移,返回无用元素的第一个迭代器
erase(remove(a.begin(),a.end(),target),a.end());
3、unique
remove()把不重复的元素往前移,返回无用元素的第一个迭代器
erase(remove(a.begin(),a.end(),target),a.end());
4、集合操作
vector<int> result; result.resize(a.size()+b.size()); vector<int>::iterator it=set_difference(a.begin(),a.end(),b.begin(),b.end(),result.begin()); result.resize(it-result.begin());
resize(int n)的作用是保留n个空位,如容器的size小于n,则增大到n;如size大于n,则截断到n。
几个集合操作函数的用法都如上代码所示:交集set_intersection、并集set_union、差集set_difference。
此算法使用数组操作更简单,不需使用resize函数。

浙公网安备 33010602011771号