У меня одна проблема. У меня есть вектор указателей, который выглядит так:
vector < Pice*> popisPica;
(Объект Pice имеет метод int kolikoLjudiZeli (), который возвращает целое число.)
У меня есть несколько объектов в этом векторе, которые мне нужно отсортировать. Но когда я пытаюсь это сделать, моя программа ничего не делает.
У меня есть метод
sort()
{
for (int i=0; i<popisPica.size(); i++)
{
for (int j=0; j<popisPica.size()-1; j++)
{
if (popisPica[j]->kolikoLjudiZeli() < popisPica[j+1]->kolikoLjudiZeli())
{
Pice *temp;
temp = popisPica[j];
popisPica[j] = popisPica[j+1];
popisPica[j] = temp;
}
}
}
}
Вы можете помочь мне найти ошибку? Я невежественен.
Спасибо
2 ответа
popisPica[j+1] = temp; // instead of popisPica[j]
Посмотри, что ты здесь натворил:
Pice *temp;
temp = popisPica[j];
popisPica[j] = popisPica[j+1]; // not important
popisPica[j] = temp; // assign popisPica[j] to popisPica[j] after all
Похожие вопросы
Новые вопросы
c++
C++ — это язык программирования общего назначения. Изначально он разрабатывался как расширение C и имел аналогичный синтаксис, но теперь это совершенно другой язык. Используйте этот тег для вопросов о коде, который будет скомпилирован с помощью компилятора C++. Используйте тег версии для вопросов, связанных с конкретной стандартной версией [C++11], [C++14], [C++17], [C++20] или [C++23]. и т.д.