从给定的未排序向量中,我想获得第 n 个最小的元素。我发现标准库中有一个方法。但我不明白以下结果。
我用条目 {3,4,5,2,3} 取向量,并希望有第二个最小的元素。如果我执行下面的代码,我会在第二个位置得到数字 2,实际上它应该是 3。因为 2 是第一个最小的元素,而不是第二个。
我的错误是什么?
#include <iostream>
#include <vector>
#include <algorithm>
int main()
{
std::vector<size_t> temp;
temp.assign({3,4,5,2,3});
std::nth_element (temp.begin(), temp.begin()+2, temp.end());
std::cout << std::endl;
for(size_t i=0;i<temp.size();i++){ printf("%.2f\n",(double)temp[i]); }
}