ベクトルの k 番目に小さい要素を返すコードを作成しようとしています。例: 要素 {0, 3, 2, 5} を含むベクター rand があり、ユーザーが K の値として 2 を入力するとします。関数は、2 番目 (k 番目) であるため、ベクターから要素 2 を返す必要があります。 ) ベクトルの最小要素。
これまでのところ、これは私のコードです:
int iterative_kth_element(vector<int>& vec, size_t k)
{
int index = 0;
int min = vec[0];
for(int i = k;i<vec.size();i--) {
for (int j = 1; j < vec.size();j++) {
if ( min > vec[j] ) {
min = vec[j];
index = i;
}
vec.erase(vec.begin() + index);
if (i == 1) {
return min;
}
}
}
}
ベクトルにさえない巨大な数を返し続けます。