C++ 如何通过调用函数(通过引用调用)更改std::set元素?在c++;

C++ 如何通过调用函数(通过引用调用)更改std::set元素?在c++;,c++,set,pass-by-reference,C++,Set,Pass By Reference,问题是:我在main函数中初始化了一个集合,我想插入一个 元素,通过调用某个函数。但它似乎不起作用 是关于电话咨询还是其他什么?谢谢 #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++){

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

是关于电话咨询还是其他什么?谢谢

#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;
}
#包括
#包括
使用名称空间std;
void f(设置myset){
set::迭代器;
//插入元素

对于(int i=1;i您是对的,您需要通过引用传递,否则您将修改集合的本地副本:

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

To OP:根据经验,当您希望被调用函数修改调用函数中的某些值时,需要传递引用(或指针)。按值传递意味着“复制”