【发布时间】: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++,但还是一样。