在 boost::bind 中通过引用传递向量
Passing vector by reference in boost::bind
为什么这个 0 的输出?
http://ideone.com/S7hgv
#include <boost/bind.hpp>
#include <vector>
#include <iostream>
using namespace std;
void f2(vector<int> &h)
{
h.clear();
h.push_back(0);
}
void f1(vector<int> &h)
{
boost::bind(f2, boost::ref(h));
}
int main()
{
vector<int> h;
f1(h);
cout << h.size() << "n";
}
我需要它是 1,并且由于某种原因 h 没有被修改。
boost/std::bind()
只构造函数对象。您仍然必须调用它,以便执行其中的任何代码。
要获取 1
的输出,请替换该行
boost::bind(f2, boost::ref(h));
跟
boost::bind(f2, boost::ref(h))();
相关文章:
- 创建引用向量的优雅方式
- C++重新引用向量中的值
- 取消引用向量时出现问题
- 从类返回引用向量
- 引用向量中的特定索引
- 如何取消引用向量迭代器
- 对唯一 ptr 无效读取的引用向量
- 在引用向量时使用访问器进行迭代C++
- 对模板函数的引用向量
- 必须调用对非静态成员函数的引用(向量)
- 常量引用向量向量<向量<long>>赋值不编译
- 结构中的按引用向量
- C++的新手,程序在取消引用向量的一部分时没有响应
- C++:试图通过引用向量来理解传递
- C++ 按引用向量
- c++ 函数,将数据返回到引用向量
- 调用"new"以存储到shared_ptr的引用向量中
- C++逗号运算符重载和引用向量
- 构造函数中的引用向量:未初始化的引用
- 在c++中自动引用向量