能不能通过 it 向set<set<int> > C1 中插入数据, 比如下面的,怎样向 C_1.begin(); 中插入一个元素? 5
#include<iostream>#include<set>usingnamespacestd;intmain(){set<int>coll1,coll2;coll1....
#include<iostream>
#include<set>
using namespace std;
int main()
{
set<int> coll1,coll2;
coll1.insert(3);
coll1.insert(9);
coll2.insert(11);
coll2.insert(12);
set<set<int> > C_1;
C_1.insert(coll1);
C_1.insert(coll2);
set<set<int> >::iterator iter=C_1.begin();
while(iter!=C_1.end())
{
set<int>::iterator it=iter->begin();
while(it!=iter->end())
cout<<*it++<<endl;
++iter;
}
} 展开
#include<set>
using namespace std;
int main()
{
set<int> coll1,coll2;
coll1.insert(3);
coll1.insert(9);
coll2.insert(11);
coll2.insert(12);
set<set<int> > C_1;
C_1.insert(coll1);
C_1.insert(coll2);
set<set<int> >::iterator iter=C_1.begin();
while(iter!=C_1.end())
{
set<int>::iterator it=iter->begin();
while(it!=iter->end())
cout<<*it++<<endl;
++iter;
}
} 展开
3个回答
展开全部
while(iter!=C_1.end())
{
iter++->insert( 5 ) ; // C_1中的每个set都插如一个新元素5
}
我可能没理解你的意思,但是用iter插入一个元素是微不足道的事情.
如果用it, it是指向int的iterator.你必须通过容器对象iter才可以插入啊.
如果你要用C_1.begin()来插入一个set<int>的对象,你要相信一个事实,set<>本身是平衡二叉树,如果用C_1.insert( iterator, val),iterator只是提供参考的,val还是会根据它的值插入合适的地方,所以这问题就退化为C_1.insert( coll1)的问题了.
{
iter++->insert( 5 ) ; // C_1中的每个set都插如一个新元素5
}
我可能没理解你的意思,但是用iter插入一个元素是微不足道的事情.
如果用it, it是指向int的iterator.你必须通过容器对象iter才可以插入啊.
如果你要用C_1.begin()来插入一个set<int>的对象,你要相信一个事实,set<>本身是平衡二叉树,如果用C_1.insert( iterator, val),iterator只是提供参考的,val还是会根据它的值插入合适的地方,所以这问题就退化为C_1.insert( coll1)的问题了.
追问
// 好像你说的方法不行
/* 错误信息 ,我用的是 Visual C++ 6.0
: error C2839: invalid return type 'int *' for overloaded 'operator ->'
: error C2227: left of '->insert' must point to class/struct/union
*/
追答
可以的.我VS2008,要使用STL就不要用VC6.0.很多标准化的东西VC6.0都编译不过
不如你拆开iter->insert( 5 ), iter++ ;
展开全部
抱歉,没学过C1,只学过VF。
追问
C1 仅仅是一个变量的名字啊!
追答
哦,抱歉,理解错了。但是VF中好像没提到“coll”的用法。你的计算机书上应该提到有噻,弄清楚每个单词的意思和用法,再一句一句地读程序,会解出答案的。慢慢来嘛。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你上面的代码用 java编写,还是c++ 啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询