2016-01-27 123 views
0

在代碼sort(A.begin(),A.end());中,其中A被定義爲vector<pair<int,pair<int,int>>> A;如何使用vector <pair <int,pair <int,int> >>進行排序?

如果我打電話給sort方法,那麼在什麼基礎上將排序完成?

+1

可能重複[是std :: pair 排序良好定義?](http://stackoverflow.com/questions/2819245/is-stdpairint-stdstring-ordering-well-defined ) – BeyelerStudios

+1

它會對'std :: pair :: operator <'進行排序,詳情可以在這裏找到(http://en.cppreference.com/w/cpp/utility/pair/operator_cmp)。 – erip

回答

3

它將使用operator <來比較std::pair,specified here

它首先按元件上的元件按順序比較元件first,如果它們相等,則在second元件上。

由於這裏的複雜類型爲pair<int,pair<int,int>>,給出std::sort算法一個自定義比較器可能是一個更好的主意。確保所提供的仿函數滿足Compare概念的要求,即嚴格弱訂購

相關問題