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 に答える