如何根据两种不同的比较标准对STL矢量进行排序?默认的sort()函数只需要一个单一的sorter对象.
解决方法
您需要将两个标准组合成一个.
举个例子,你将如何排序一个第一个和第二个字段的结构体
基于第一个字段,然后是第二个字段.
举个例子,你将如何排序一个第一个和第二个字段的结构体
基于第一个字段,然后是第二个字段.
#include <algorithm> struct MyEntry { int first; int second; }; bool compare_entry( const MyEntry & e1,const MyEntry & e2) { if( e1.first != e2.first) return (e1.first < e2.first); return (e1.second < e2.second); } int main() { std::vector<MyEntry> vec = get_some_entries(); std::sort( vec.begin(),vec.end(),compare_entry ); }@H_502_10@注意:compare_entry的实现更新为使用Nawaz的代码.