如题,我用了选择排序,显示下标越界,为什么啊:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n, m;
cin >> n >> m;
vector<int> a(n);
for (vector<int>::iterator iter = a.begin(); iter < a.end(); iter++)
{
cin >> *iter;
}
for (int i = 0; i < n; i++)
{
int min = a[i];
int flag = i;
int k = i;
for (k = i; k < n; k++)
{
if (min > a[k])
{
min = a[k];
flag = k;
}
}
int temp = a[i];
a[i] = a[k];
a[k] = temp;
}
for (int i = 0; i < m; i++)
cout << a[i] << endl;
}
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n, m;
cin >> n >> m;
vector<int> a(n);
for (vector<int>::iterator iter = a.begin(); iter < a.end(); iter++)
{
cin >> *iter;
}
for (int i = 0; i < n; i++)
{
int min = a[i];
int flag = i;
int k = i;
for (k = i; k < n; k++)
{
if (min > a[k])
{
min = a[k];
flag = k;
}
}
int temp = a[i];
a[i] = a[k];
a[k] = temp;
}
for (int i = 0; i < m; i++)
cout << a[i] << endl;
}