问题描述
运行此代码时,我不断收到错误消息。我一直在寻找类似错误的解决方案,但是作为一个初级程序员,我无法理解旨在用于不同代码的解决方案。 这是我的代码。请给我一个演示解决方案。
#include <iostream>
#include <vector>
#include <numeric>
#include <algorithm>
using namespace std;
int main() {
vector <int> listed_elements {10,6,11};
auto min_value = min_element(listed_elements.begin(),listed_elements.end());
cout << "The smallest element on the list is: ";
cout << min_value << endl;
return 0;
}
解决方法
迭代器模仿指针。您可以取消引用迭代器以获取元素:
cout << *min_value << endl;
请注意,在一般算法中,通常会返回end
(作为第二个参数传递的迭代器),以表明未找到任何元素,然后需要在之前检查是否具有有效的迭代器>取消引用:
if (min_value != listed_elements.end()) {
std::cout << *min_value << std::endl;
}
但是,std::min_element
返回结束迭代器的唯一情况是范围为空,因此,如果您绝对确定不是这种情况,则可以删除该支票(但只有这样!)