如何通过调用函数(通过引用调用)来更改 std::set 元素?在 C++ 中
how to change std::set element by call a function (call by reference)? in c++
我是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);
}
相关文章:
- 什么时候调用组成单元对象的析构函数
- 对RValue对象调用的LValue ref限定成员函数
- 为什么使用 "this" 指针调用派生成员函数?
- 函数调用中参数的顺序重要吗
- OpenGL - 在抛出"__gnu_cxx::recursive_init_error"实例后终止调用?
- 基于另一个成员参数将函数调用从类传递给它的一个成员
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 在c++类上调用void函数
- 为什么 std::unique 不调用 std::sort?
- 使用运算符调用 void 函数时出错<set>
- set.clear() 在删除元素之前调用所包含元素的析构函数
- 调用 std::set<Type*>::find 时避免const_cast
- 如何从对象中调用我的set回调函数
- 如何通过调用函数(通过引用调用)来更改 std::set 元素?在 C++ 中
- 在c++中调用(date-set)时避免系统()输出
- "map/set iterators incompatible"映射销毁,取决于构造函数调用
- 在语句中调用 std::set 函数时出现意外"if"评估结果
- 为什么我不能在 std::set 中的元素上调用非常量成员函数?
- 使用迭代器调用STL Set中的非静态函数
- 可以 std::set::insert() 调用赋值运算符