使用vector 和 algorithm排序和去重

来源:互联网 发布:网红用的滤镜软件 编辑:程序博客网 时间:2024/05/01 19:59


#include <iostream>#include <algorithm>#include <vector>using namespace std;int main() {  int ia[] = {5, 3, 1, 3, 2, 5};  vector<int> ivec(ia, ia + sizeof(ia) / sizeof(int));  // sort unique erase   sort(ivec.begin(), ivec.end());  vector<int>::iterator iter = unique(ivec.begin(), ivec.end());  ivec.erase(iter, ivec.end());  return 0;}

由于Algorithm nevers execute container operations的前提,unique() algorithm无法更改container的size,所以unique将多出来的element放到container的尾端,并传回一个redundant iterator,只要配合erase(),就可将redundant刪除。

所以sort->unique->erase是unique的标准动作


0 0