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

这里的问题是:我在main函数中初始化了一个set,我想插入一个
元素通过调用一些函数。但这似乎不起作用。

是关于通过引用 call 还是其他方式?谢谢!

#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;
}

最佳答案

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

void f(set<int>& myset)
{ //           ^
  for(int i = 1; i < 11; i++)
     myset.insert(i*10);
}

关于c++ - 如何通过调用函数(按引用调用)来更改std::set元素?在C++中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19364595/

10-13 07:05
查看更多