Visual Studio Debug показывает исключение «Векторный индекс вне диапазона» (только режим отладки), но я не могу его обнаружить. Нет ничего плохого, это алгоритм сортировки выбора.Векторный индекс вне диапазона, ошибка отображается только в режиме отладки
Исходный код:
#include <iostream>
#include <vector>
using namespace std;
template<typename T>
void ascending_sort(vector<T> & list) {
size_t i, j, index;
for (i = 0; i < list.size() - 1; i++) {
index = i;
for (j = i + 1; j < list.size(); j++) {
if (list[j] < list[index]) {
index = j;
}
}
if (index != i) {
T item = list[i];
list[i] = list[j];
list[j] = item;
}
}
}
int main(int argc, char * argv[]) {
vector<int> list = { 5, 1, -14, 8 };
ascending_sort(list);
for (size_t i = 0; i < list.size(); i++) {
cout << list[i] << endl;
}
return 0;
}
Выход:
0
5
-14
8