해보자

[map] value sort ( C++ ) 본문

C++/Container

[map] value sort ( C++ )

안댕 2020. 5. 19. 00:47
 

1. map → set 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <set>
#include <map>
 
using namespace std;
 
struct setCompare {
    bool operator()(const pair<intint> &lhs, const pair<intint> &rhs) {
        if (lhs.second == rhs.second) return lhs.first < rhs.first;
        return lhs.second < rhs.second;
    }
};
 
int main() {
    map<intint> m;
    set<pair<intint>, setCompare> s;
    for (auto it = m.begin(); it != m.end(); it++) {
        s.insert(*it);
    return 0;
}
cs

2. map → vector

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <algorithm>
#include <map>
#include <vector>
 
using namespace std;
 
bool cmp(pair<intint> left , pair<intint> right ) {
    return left.second < right.second;
}
int main() {
    map<intint> m;
    vector <pair<intint>> v;
    
    // key-value 값 복사
    copy(m.begin(), m.end(), back_inserter<vector<pair<intint>>>(v));
 
    // value 기준 정렬
    sort(v.begin(), v.end(), cmp);
    return 0;
}
cs

 

'C++ > Container' 카테고리의 다른 글

[vector] find, distance (C++)  (0) 2020.02.05