stl中set的问题小白求解答
问题是从一组数列中找出最大值 最小值和想法是用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;
} set.end()指向set中最后一个元素的下一个位置,也就是set.end()指向的是无效元素 这么回事啊 游啊游 发表于 2016-9-25 10:40
这么回事啊
end()返回的是尾后迭代器, 获取最后元素请用 back()
页:
[1]