c++ - 用 lambda 对对象向量进行排序,最后不排序
问题描述
我正在尝试使用 lambda 为向量编写一个排序函数,我在很多地方都看到过这个建议,但我一直在这样做时遇到问题。
std::sort(eventvec.begin(), eventvec.end(), [](const event& lhs, const event& rhs) {
return lhs.getim < rhs.getim;});
我在编写它时遇到了多个错误,然后我将它堆叠在一个函数中的一个函数上,因为它需要一个静态函数。
类中声明的函数有:
double event::getut() { return unift; }
static double getim(event &a) { return a.getut(); }
最后排序根本没有顺序。属性中也有负值。有什么建议么?
解决方案
您正在按 的地址对事件进行排序event::getim
,这对于每个事件都是相同的。
我认为您的意思是调用事件的成员函数,该函数需要从const event
double event::getut() const { return unift; }
std::sort(eventvec.begin(), eventvec.end(), [](const event& lhs, const event& rhs) {
return lhs.getut() < rhs.getut(); });
推荐阅读
- angular - 当我尝试访问反应形式的元素进行单元测试时,我收到此错误“TypeError:this.reCaptchaApi.render is not a function”
- python - 遍历图像对象列表以保存文件
- python - 鼠标拖动并使用 pynput 切换
- javascript - 如何改变 。再次变成“।” 那是印地语句号字符(Purnviram)
- python - 使用 Apache Web 服务器托管它时出现 Django 错误
- javascript - 如何使用 Python 在 Excel 的行尾动态添加总计?
- visual-studio-code - typedef 用于字符串别名?
- arguments - 无法使用参数调用 strategy.entry
- java - Android java - 是否可以自动打开文件?
- robotframework - 机器人框架浏览器库无法单击 href