#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的标准动作
本文深入探讨了使用C++进行排序、唯一元素识别及删除冗余的操作,通过实例展示了`sort`、`unique`与`erase`函数的综合应用,旨在简化数据结构管理。
1238

被折叠的 条评论
为什么被折叠?



