2017-12-19 11 views
-3

std::vector(別のインデックスを含むstd::vector)ソートしようとしています。C++のソートにラムダ関数を使用するとエラーが発生する

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

しかし、それは私に次のエラーを取得して保持します:

image

私は自分自身をg ++コマンドに-std = C++ 11を追加し、それを修正しました。

+0

最初の警告は、その理由を示しています。 LambdaにはC++ 11が必要ですが、C++ 11モードではコンパイルしていません。 –

+0

最初のエラーメッセージから、C++ 11モードでコードをコンパイルしていないことが明らかです。ラムダはC++ 11で導入されました –

+0

私はJavaとPythonをコードしていますが、異なるC++モードと切り替え方法の違いを理解していません。私は警告を見た。私はそれをgoogledと何も見つけられませんでした。私はC++でかなり新しいです。私はg ++を更新しましたが、同じです。 – user3157047

答えて

1

エラーメッセージを慎重に読み、特に最初の行を確認してください。

次に、2台のコンピュータ上のツールチェーンのバージョンを比較して、デフォルトのCダイヤラが異なるかどうか、環境変数やビルド環境などで異なるデフォルトフラグを設定しているかどうかを確認します。

関連する問題