C++ Primer 答客問 (53) - comparison operatio …

看板CompBook作者時間24年前 (2000/07/10 01:48), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
C++ Primer 答客問 (53) - comparison operations of pair 侯捷 jjhou@ccca.nctu.edu.tw 2000.07.09 第一次發表於 清大.楓橋驛站(140.114.87.5).電腦書訊版(Computer/CompBook) 本文將於日後整理於 侯捷網站/侯捷譯作/C++ Primer 中文版/答客問 侯捷網站:www.jjhou.com ---------------------------------------------------------------- allan wrote (2000/07/08) : > 侯老師: > 請問您,如果我要在 vector 之中放置 pair,pair 由 int 和 string > 構成,請問如何排序? > 謝謝。 侯捷回覆: pair 本身有 comparison operations. 所以直接使用 sort() 即可。 下面是個例子: #include <utility> #include <string> #include <iostream> #include <vector> #include <algorithm> using namespace std; void print_element(pair<int, string> p) { cout << '<' << p.first << ',' << p.second << '>' << endl; } int main() { pair<int, string> pair1, pair2, pair3; pair1 = make_pair(16, "jjhou"); pair2 = make_pair(29, "jason"); pair3 = make_pair(15, "who"); // 測試 pair 有 comparison operations cout << (pair1 < pair2); // 1 (true) cout << (pair1 < pair3); // 0 (false) cout << (pair2 < pair3); // 0 (false) cout << endl; vector< pair<int, string> > vec; vec.push_back(pair1); vec.push_back(pair2); vec.push_back(pair3); for_each(vec.begin(), vec.end(), print_element ); // <16,jjhou> // <29,jason> // <15,who> sort(vec.begin(), vec.end()); for_each(vec.begin(), vec.end(), print_element ); // <15,who> // <16,jjhou> // <29,jason> } -- the end  -- ※ Origin: 楓橋驛站<bbs.cs.nthu.edu.tw> ◆ Mail: jjhou@ccca.nctu.edu.tw
文章代碼(AID): #vQBhN00 (CompBook)