【发布时间】:2016-08-11 02:54:38
【问题描述】:
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
【问题讨论】:
标签: c++ sorting vector outofrangeexception