vector <int> 中合并相同的数据怎么搞?
如题
[解决办法]
去除相同的数据?
方法一:构建一个二叉大堆阵-----依次取值,构建
方法二:新建一个vector,然后每取一个数据,就遍历新建的向量组,如果没有相同的就push,否则就丢弃。
[解决办法]
- C/C++ code
#include <iostream>#include <vector>#include <algorithm>using namespace std;int main(int argc, char* argv[]){ int a[11] = {1, 3, 3, 5, 4, 4, 9, 9, 9, 6}; vector<int> vec(&a[0], &a[10]); //before unique copy(vec.begin(), vec.end(), ostream_iterator<int>(cout, " ")); cout << endl; sort(vec.begin(), vec.end()); vec.erase(unique(vec.begin(), vec.end()), vec.end()); //after unique copy(vec.begin(), vec.end(), ostream_iterator<int>(cout, " ")); cout << endl; system("pause"); return 0;}
[解决办法]
先排序再调用unique去掉相邻的重复数,也可以先把vector转为set再重新转为vector.