读书人

vector lt;intgt; 中合并相同的数据如何搞

发布时间: 2012-03-09 16:54:57 作者: rapoo

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.

读书人网 >VC/MFC

热点推荐