gpt4 book ai didi

c++ - 在 boost::bind 中通过引用传递 vector

转载 作者:行者123 更新时间:2023-11-27 23:23:14 25 4
gpt4 key购买 nike

为什么这个输出是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++ - 在 boost::bind 中通过引用传递 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11335747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com