Привет, у меня есть вектор указателей, фактически каждый указатель является массивом, где каждый массив имеет вид:
int a, int b, последовательность целых чисел переменного размера.
Пример неупорядоченного вектора:
rows[0] => points to [1,2,...]
rows[1] => points to [2,1,...]
rows[2] => points to [3,1,...]
rows[3] => points to [1,4,...]
rows[4] => points to [1,1,...]
Пример вывода:
rows[0] => points to [1,1,...]
rows[1] => points to [1,2,...]
rows[2] => points to [1,4,...]
rows[3] => points to [2,1,...]
rows[4] => points to [3,1,...]
Мне нужно отсортировать этот вектор таким образом, я создаю следующую пользовательскую функцию сравнения:
bool cmpRow(unsigned int *a, unsigned int *b)
{
//Mesmo id word
if(a[0] == b[0])
{
return (a[1] < b[1]);
}
else
{
return (a[0] < b[0]);
}
}
и я использую его следующим образом:
std::vector<unsigned int*> rows;
.
.
//Insert some stuffs
.
.
std::sort (rows.begin(), rows.end(), cmpRow);
Но результат не был ожидаемым, может кто-нибудь помочь мне с этой проблемой?
Редактировать:
На самом деле с функциями все в порядке, проблема была в функции внутри цикла, эта функция вызывала функцию сортировки чаще, чем необходимо, поэтому результат не быложидается.