0
在代碼sort(A.begin(),A.end());
中,其中A
被定義爲vector<pair<int,pair<int,int>>> A;
。如何使用vector <pair <int,pair <int,int> >>進行排序?
如果我打電話給sort
方法,那麼在什麼基礎上將排序完成?
在代碼sort(A.begin(),A.end());
中,其中A
被定義爲vector<pair<int,pair<int,int>>> A;
。如何使用vector <pair <int,pair <int,int> >>進行排序?
如果我打電話給sort
方法,那麼在什麼基礎上將排序完成?
它將使用operator <
來比較std::pair
,specified here。
它首先按元件上的元件按順序比較元件first
,如果它們相等,則在second
元件上。
由於這裏的複雜類型爲pair<int,pair<int,int>>
,給出std::sort
算法一個自定義比較器可能是一個更好的主意。確保所提供的仿函數滿足Compare概念的要求,即嚴格弱訂購。
可能重複[是std :: pair排序良好定義?](http://stackoverflow.com/questions/2819245/is-stdpairint-stdstring-ordering-well-defined ) –
BeyelerStudios
它會對'std :: pair :: operator <'進行排序,詳情可以在這裏找到(http://en.cppreference.com/w/cpp/utility/pair/operator_cmp)。 – erip