C++ set和multiset的问题?

xugao287 2008-10-26 10:53:50
#include<iostream>
#include<set>
#include<vector>
#include<algorithm>
using namespace std;
int main(void)
{
set<int> set1;
for(int i=0;i<10;++i)
set1.insert(i);
for(set<int>::iterator p=set1.begin();p!=set1.end();++p)
cout<<*p<<" ";
cout<<endl;
if(set1.insert(3).second)//把3插入到set1中
//插入成功则set1.insert(3).second返回1,否则返回0
//此例中,集中已经有3这个元素了,所以插入将失败
cout<<"set insert success";
else
cout<<"set insert failed";
cout<<endl;
int a[] = {4, 1, 1, 1, 1, 1, 0, 5, 1, 0};
multiset<int> A;
A.insert(set1.begin(),set1.end());//错误在此处
A.insert(a,a+10);
for(multiset<int>::iterator p1=A.begin();p1!=A.end();++p1)
cout<<*p1<<" ";
cout<<endl;
return 0;
}
...全文
176 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
dreamer_shax 2008-10-27
  • 打赏
  • 举报
回复
期待高手解答,
#include <iostream>
#include <set>
#include <vector>
#include <algorithm>
using namespace std;
int main(void)
{
set <int> set1;
for(int i=0;i <10;++i)
set1.insert(i);
for(set <int>::iterator p=set1.begin();p!=set1.end();++p)
cout <<*p <<" ";
cout <<endl;
if(set1.insert(3).second)//把3插入到set1中
//插入成功则set1.insert(3).second返回1,否则返回0
//此例中,集中已经有3这个元素了,所以插入将失败
cout <<"set insert success";
else
cout <<"set insert failed";
cout <<endl;
int a[] = {4, 1, 1, 1, 1, 1, 0, 5, 1, 0};

multiset <int> A;

vector<int> v1;
vector<int>::iterator ii = v1.begin();
A.insert(ii,ii+1);//错误在此处
A.insert(a,a+10);
for(multiset <int>::iterator p1=A.begin();p1!=A.end();++p1)
cout <<*p1 <<" ";
cout <<endl;
return 0;
}

如果是改成vector 则通过了。
看来还是mulitset 和set 之间的问题,不懂ing

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧