Реализация базовой пузырьковой сортировки для сортировки моего вектора структур Студента по имени.
#include <vector>
#include <string>
void sortStudents(std::vector<Student>& students) {
typedef std::vector<Student>::iterator iter;
for (iter i = students.begin(); i != students.end()-1; ++i) {
for (iter j = i; j != students.end() - 1; ++j) {
Student current = *i;
Student next = *(i + 1);
bool shouldSwap = ((next.name).compare(current.name)) < 0; // if next is before current in the alphabet
if (shouldSwap) {
std::iter_swap(*i, *(i + 1));
}
}
}
}
Я совершенно не прав с этим подходом или я упускаю что-то базовое?
Примечание: я знаю неэффективность пузырьковой сортировки, я просто пытаюсь понять итераторы.