gpt4 book ai didi

c++ - 具有 lambda 函数的函数 vector

转载 作者:行者123 更新时间:2023-12-01 18:57:00 25 4
gpt4 key购买 nike

此代码不正确:

std::vector<int (*)(int)> fv;

for (int i=0; i<10; i++)
{
auto g = [i](int n) -> int
{
return n+i;
};

fv.push_back(&g);
}

因为 lambda 函数不是 int (*)(int) 类型但它是一个对象。我的问题是:我必须输入什么类型 vector<...>

最佳答案

您可以使用库类型std::function .

例如:

#include <vector>
#include <functional>

void foo() {
std::vector<std::function<int(int)>> fv;

for (int i = 0; i < 10; ++i) {
fv.emplace_back([i](int n) {
return n + i;
});
}
}

关于c++ - 具有 lambda 函数的函数 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59069837/

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