本来是想用qSort来排序的,结果发现在使用lambda表达式的时候有警告。

所以还是选择使用标准库的sort函数。

 

现有一个结构体s_mydata,它有两个元素_val1和_val2。

 

如何对以s_mydata作为元素类型的列表进行排序呢?

使用sort函数的三参数版本,前两个参数表示排序范围,第三个参数是一个函数用来确定

元素的大小。

 

示例:

1.准备一些数据。

 

2.对datalist排序

sort的第一个参数和第二个参数使用datalist的迭代器begin和end表示对整个列表进行排序。

为了省事,第三个参数使用了lambda表达式[](const s_mydata& d1, const s_mydata& da){ return d1._val2 < d2._val2; }

[]表示不需要捕获外部变量,()里是函数参数,{}里是函数体。return d1._val2 < d2._val2表示以结构体的_val2作为大小比较依据。

可以看到列表_val2的值为升序。

 

3.改为按照_val1排序

 

---> 文章来源于我的个人博客:fearlazy
---> 编程是一件怎么也学不会的事情,但是如果能享受学习的过程也是挺好的。