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

how to change std::set element by call a function (call by reference)? in c++

本文关键字:调用 set std 元素 C++ 函数 何通过 引用      更新时间:2023-10-16

我是c++ std::set user的新手。

问题是:我在 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;
}

你是对的,你需要通过引用传递,否则你会修改集合的本地副本:

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