鱼C论坛

 找回密码
 立即注册
查看: 1415|回复: 3

stl中set的问题小白求解答

[复制链接]
发表于 2016-9-24 10:07:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
问题是从一组数列中找出最大值 最小值  和
想法是用set容器来解决 ,因为考虑到set可自动升序排序(最大值:set.end() 最小值:set.begin())
然而问题来了....
当我向set中插入一个8151时  *set.end()返回1  这是什么鬼?

贴出code
#include<iostream>
#include<set>
using namespace std;
int main()
{
        set<int> set;
        int n,sum=0,temp;
        cin>>n;
        while(n--)
        {
                cin>>temp;
                sum+=temp;
                set.insert(temp);
        }
        cout<<*set.end()<<endl;
        cout<<*set.begin()<<endl;
        cout<<sum<<endl;
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-9-24 21:46:41 | 显示全部楼层
set.end()指向set中最后一个元素的下一个位置,也就是set.end()指向的是无效元素
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-25 10:40:09 From FishC Mobile | 显示全部楼层
这么回事啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-26 20:20:28 | 显示全部楼层

end()返回的是尾后迭代器, 获取最后元素请用 back()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 04:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表