Я пытаюсь сортировать вектор индексов, сортируя его точно так же, как мой обычный вектор уже отсортирован. Это утверждение работает правильно и правильно компилируется в visual studio, но мне нужно его компилировать в Linux, поэтому мне нужно как-то переписать инструкцию для работы с более старой версией компилятора. Вектор индекс объявляется и инициализируется этим, который до сих пор отлично работает на старом компиляторе:C++ сортировка индексного вектора без лямбда
vector<float> indexes(toBeSorted.size());
//initialize original index locations
for (float i = 0; i != indexes.size(); ++i) indexes[i] = i;
вопрос эта линия, которая ломает в Linux:
sort(indexes.begin(), indexes.end(), [toBeSorted](float i1, float i2) {return toBeSorted[i1] > toBeSorted[i2]; });
Пожалуйста, помогите!
Эта линия не волшебно перерыв в Linux, если он не делает что-то вроде вызова неопределенное поведение. Если вы имеете в виду, что он не компилируется, это не проблема Linux. – chris
, о ком компилятор мы говорим о Linux? – Hulk
Какой компилятор вы используете? Если GCC, попробуйте параметр '-std = C++ 0x', чтобы включить возможности C++ 11. –