1. vector의 정렬.
sort()함수는 앞자리를 보고 정렬하는걸 알수있다. 근데 함수를 선언해서 정렬할수 있다.
#include <string> #include <iostream> #include <vector> #include <algorithm> using namespace std; bool _reverse(pair<int ,string> a, pair<int, string> b) { return a.first > b.first; } bool _reverse2(pair<string, int> a, pair<string, int> b) { return a.second > b.second; } int main() { vector<pair<int, string>> v1; v1.push_back(make_pair(1,"abc")); v1.push_back(make_pair(3,"def")); v1.push_back(make_pair(2,"ghi")); v1.push_back(make_pair(4,"jkl")); sort(v1.begin(), v1.end()); for(int i=0;i<v1.size();i++) cout<<"v1의"<<i<<" = "<<v1[i].first<<" "<<v1[i].second<<endl; cout<<endl; sort(v1.begin(), v1.end(), _reverse); for(int i=0;i<v1.size();i++) cout<<"v1의"<<i<<" = "<<v1[i].first<<" "<<v1[i].second<<endl; cout<<endl; ///////////////////////////////////////////////////////////////////// vector<pair<string, int>> v2; v2.push_back(make_pair("abc",1)); v2.push_back(make_pair("def",3)); v2.push_back(make_pair("ghi",2)); v2.push_back(make_pair("jkl",4)); sort(v2.begin(), v2.end()); for(int i=0;i<v2.size();i++) cout<<"v2의"<<i<<" = "<<v2[i].first<<" "<<v2[i].second<<endl; cout<<endl; sort(v2.begin(), v2.end(), _reverse2); for(int i=0;i<v2.size();i++) cout<<"v2의"<<i<<" = "<<v2[i].first<<" "<<v2[i].second<<endl; return 0; }
2. 중첩벡터.
벡터안의 벡터에 인자를 넣으려면 아래처럼 새로 벡터를 선언후, 그안에 인자를 넣고
그 새 벡터를 넣어야 된다.
#include <string> #include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { vector<pair<int, vector<string>>> p1; for(int k=0;k<10;k++) //k번째 손님이 { vector<string> temp; for(int i=1;i<6;i++) //상자를 1~5번까지 5개 주문했다. temp.push_back(to_string(5*k + i)+"번상자"); p1.push_back(make_pair(k,temp)); } for(int i=0;i<p1.size();i++) { cout<<p1[i].first<<"번째 손님이 주문한 상자 : "; for(int j=0;j<p1[i].second.size();j++) cout<<p1[i].second[j]<<" "; cout<<endl; } return 0; }
2. unordered_map 출력.
unordered_map은 정렬이 불가능하다고 한다. 하려면 벡터에 넣어서 해야됨.
#include <string> #include <iostream> #include <unordered_map> #include <algorithm> using namespace std; int main() { unordered_map<int, string> dict; dict[1] = "rara"; dict[3] = "haha"; dict[2] = "kk"; for(auto it=dict.begin(); it!=dict.end(); it++) cout<<it->first<<" "<<it->second<<endl; return 0; }
'Python > 2.7 simple coding(+ c++)' 카테고리의 다른 글
remove docker image over 2 month (0) | 2020.03.04 |
---|---|
파일 입출력. (0) | 2016.10.04 |
string, regular expression관련. (0) | 2016.09.29 |
canyouhack.it Programming Challenge 3 Lost! (0) | 2015.05.03 |
canyouhack.it Programming Challenge 2 Sudoku! (0) | 2015.05.01 |