用vector开的结构体数组,能否用sort排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用vector开的结构体数组,能否用sort排序相关的知识,希望对你有一定的参考价值。
参考技术A 可以的,系统提供的算法有sort()直接用不过要记得符号重载,如果是list容器就需要内置的sort算法如 变量.sort() 参考技术B vector<int> vInt;sort( vInt.begin(), vInt.end() ); 参考技术C 可以,要用迭代器作参数
要自定义比较方式 参考技术D 可以
用lambda表达式按照结构体中的一个字段来排序一个结构体数组
假如结构体如下:
struct item
int a;
string b;
;
代码:
#include <algorithm>
#include <vector>
using namespace std;
// 创建一个结构体数组
vector<item> arr = 3, "c", 1, "a", 2, "b" ;
// 使用lambda表达式来定义比较函数
auto compare = [](item t1, item t2)
return t1.a < t2.a; // 按照a字段升序排序
;
// 调用sort函数来对数组进行排序
sort(arr.begin(), arr.end(), compare);
以上是关于用vector开的结构体数组,能否用sort排序的主要内容,如果未能解决你的问题,请参考以下文章