0

vector<vector<int>>は次のエントリを持っています:

2 3
3 4
2 3
4 5
5 6

一度だけ表示されるエントリで別のエントリを作成する必要がありvector<vector<int>>ます。そう:

3 4
4 5
5 6

4

3 に答える 3

0

これにより、探している結果が得られます。std::mapとの使用std::pair

#include <iostream>
#include <vector>
#include <map>

int main() {
    std::map<std::pair<int, int>, int> count_map;
    std::vector<std::pair<int, int> > v;
    std::vector<std::pair<int, int> > v2;
    int a[10] = {2,3,3,4,2,3,4,5,5,6};

    for(int i = 0; i < 10; i++) {
        int first = a[i];
        int second = a[++i];
        std::pair<int, int> p = std::make_pair(first, second);
        v.push_back(p);
        count_map[p]++;
    }

    for(auto it = count_map.begin(); it != count_map.end(); ++it) {
        if(it->second != 1) continue;
        v2.push_back(it->first);
        std::cout << it->first.first << ", " << it->first.second << std::endl;
    }
}
于 2013-07-31T15:05:20.067 に答える
0

でデータを割り当てる場合、とstd::pairを使用できます。std::sortstd::unique

std::vector<std::pair<int,int>> vPairs;
std::sort(vPairs.begin(), vPairs.end());
std::vector<std::pair<int,int>>::iterator it;
it = std::unique(vPairs.begin(), vPairs.end()); // iterator keeps the last unique element position
vPairs.resize( std::distance(vPairs.begin(),it) ); // resize according to unique pair number
于 2013-07-31T14:10:59.367 に答える