[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函数。

posted @ 2013-05-10 16:02  iyjhabc  阅读(187)  评论(0)    收藏  举报