微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将向量迭代器转换为int值以进行打印?

如何解决如何将向量迭代器转换为int值以进行打印?

运行此代码时,我不断收到错误消息。我一直在寻找类似错误解决方案,但是作为一个初级程序员,我无法理解旨在用于不同代码解决方案。 这是我的代码。请给我一个演示解决方案。

#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返回结束迭代器的唯一情况是范围为空,因此,如果您绝对确定不是这种情况,则可以删除该支票(但只有这样!)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。