用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排序的主要内容,如果未能解决你的问题,请参考以下文章

求教一个问题,如何用sort对结构体数组排序

如何用sort对结构体进行排序

c++ sort 函数能对类或者结构体进行排序吗

结构体数组排序:1004 成绩排名 pta

sort函数能对结构体进行排序吗?

用lambda表达式按照结构体中的一个字段来排序一个结构体数组