首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎么使用迭代器iterator向嵌套的set对象中插入值

2013-10-21 
如何使用迭代器iterator向嵌套的set对象中插入值//FILE: SET_TEST.CPP//用iterator实现setsetint中两

如何使用迭代器iterator向嵌套的set对象中插入值

//FILE: SET_TEST.CPP
//用iterator实现set<set<int>>中两个set<int>的融合
#include <iostream>
#include <set>
using namespace std;

int main ()
{
set<int> myset_1;
myset_1.insert(10);
myset_1.insert(20);
myset_1.insert(30);
set<int> myset_2;
myset_2.insert(15);
myset_2.insert(25);
myset_2.insert(35);
set< set<int> > set_set;
set_set.insert(myset_1);
set_set.insert(myset_2);

set< set<int> >::iterator itr_set_set_first=set_set.begin();//itr_set_set_first 是指向myset_1 吗?
set< set<int> >::iterator itr_set_set_next=++set_set.begin();//itr_set_set_next 是指向myset_2吗?
//error:没有参数列表和对象匹配的重载函数
set<int> set_p=*itr_set_set_first;
set_p.insert((*itr_set_set_next).begin(),(*itr_set_set_next).end());
set_set.erase(myset_1);
set_set.erase(myset_2);
set_set.insert(set_p);
//(*itr_set_set_first).insert((*itr_set_set_next).begin(),(*itr_set_set_next).end());
//myset_1.insert((*itr_set_set_next).begin(),(*itr_set_set_next).end());
return 0;
}
迭代器 嵌套set
[解决办法]
lz的问题是begin()返回的是iterator不是iterator&,所以不能++。
其次,考虑lz想要达到的目的。里层set不能这样做。里层的set不能够被修改,因为它是外层set的元素,修改了直接导致未定义行为。

热点排行