【问题标题】:Error using a lambda function for sort in C++ [closed]在 C++ 中使用 lambda 函数进行排序时出错 [关闭]
【发布时间】:2017-12-19 22:23:40
【问题描述】:

我正在尝试对 std::vector 进行排序(包含另一个 std::vector 的索引)。

sort(inds.begin(), inds.end(), [&](int i1, int i2) { return compares[i1] < compares[i2]; } );

但它总是让我出现以下错误:

我自己修复了它,将 -std=c++11 添加到 g++ 命令。

【问题讨论】:

  • 第一个警告告诉你原因。 Lambda 需要 C++11,但您不是在 C++11 模式下编译。
  • 从第一条错误消息中可以清楚地看出,您没有在 C++11 模式下编译代码。 lambda 是在 C++11 中引入的
  • 我用Java和Python写过代码,不明白不同c++模式的区别以及如何切换。我看到了警告。我用谷歌搜索并没有找到任何东西。我是 C++ 的新手。我更新了我的 g++,但还是一样。

标签: c++ sorting lambda


【解决方案1】:

仔细阅读您的错误信息,尤其是第一行。

然后比较两台计算机上工具链的版本,并检查这是否可能导致默认 C 方言假设的差异,或者您是否有不同的默认标志用于构建环境变量或构建环境或类似内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-29
    • 2020-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多