根据向量中的某些属性对向量进行排序
sorting a vector according to some attribute in it
如果我有以下向量:
vector< pair < pair< char,int >,pair< int,int > > >
如何使用<algorithm>
库根据第一对中的整数部分按降序排序?(我想用sort(vector.begin() , vector.end() )
using MyVector = vector< pair < pair< char,int >,pair< int,int > > >;
MyVector v;
std::sort(v.begin(), v.end(),
[](const MyVector::value_type& a, const MyVector::value_type& b) {
return a.first.second > b.first.second;
}
);
std::sort( v.begin(), v.end(),
[]( const auto &p1, const auto &p2 ) { return p1.first.second > p2.first.second; } );
如果你的编译器在lambda
表达式中不支持auto,那么你必须明确地指定向量元素的类型,例如使用typedef。
我想你可以使用这个链接作为参考:
sort(mMyClassVector.begin(), mMyClassVector.end(), [](const MyClass & a, const MyClass & b) -> bool { return a.mProperty > b.mProperty; });
当你从向量中得到两个对象时,使用lambda并定义'>'。
相关文章:
- C++将两个不同类型的向量的属性连接到新的向量中
- 如何将目录中的文件属性填充到结构向量中?
- 在使用 std::sort() 和 lambda 函数按属性对 ADT 的向量进行排序时遇到问题
- 将提升属性树 (ptree) 序列化为向量的最快方法是什么
- 类实例的C++/向量作为另一个类的属性
- 使用嵌套循环搜索两个向量并查看其属性
- sutex作为对象属性和对象的向量
- 查找对象属性是否位于对象向量C++中
- 按属性搜索对象的向量并返回迭代器
- 查找对象向量中属性具有相同值的对象
- 将对向量进行比较与pugi :: xml_object_range属性
- 迭代向量中属性具有特定值的元素范围
- 根据属性值在结构向量中擦除元素
- boost::variant-获取成员的向量属性
- Boost.SSpirit.x3避免将同一类型的两个连续属性塌陷为向量
- 如何将对象的属性复制到向量
- 如何按类属性对 c++ 向量数组进行排序
- 提升图形库 - 来自外部向量的权重属性
- 提升精神继承的字符串属性填充<int> ASCII 字符中的向量
- 按对象的属性对对象向量进行排序