1

我是 C++ std::set 用户的新手。

这是一个问题:我在主函数中初始化了一个集合,我想通过调用某个函数来插入一个元素。但这似乎不起作用。

是关于引用调用还是其他什么?谢谢!

#include <iostream>
#include <set>
using namespace std;
void f(set<int> myset){
   set<int>::iterator it;
   // insert element
       for(int i=1;i<11;i++){
     myset.insert(i*10);
   }    
}   
int main ()
{
   set<int> myset;
   set<int>::iterator it;
   f(myset);
   //output element
   for(it=myset.begin();it!=myset.end();it++){
      cout<<*it<<" ";       
   } 
   return 0;
}
4

1 回答 1

3

没错,您需要通过引用传递,否则您将修改该集合的本地副本:

void f(set<int>& myset)
{ //           ^
  for(int i = 1; i < 11; i++)
     myset.insert(i*10);
}
于 2013-10-14T16:16:49.030 回答