是否有可能将函数指针保存在std :: vector中?
答
是否可以保留函数指针在
std::vector
?
当然,只要他们都是同一类型:
void foo()
{
std::cout << "inside foo\n";
}
void bar()
{
std::cout << "inside bar\n";
}
void baz()
{
std::cout << "inside baz\n";
}
std::vector<void(*)()> fps { foo, bar, baz };
,并调用每个函数在一个迭代循环?
一点问题都没有:
for (auto&& fp : fps)
{
fp();
}
答
您也可能要考虑的加速Signals2库。您可以将任意数量的函数指针(AKA'slots')注册到“信号”,并通过简单地调用“信号”本身来调用它们中的每一个。该库负责管理函数指针列表并根据需要遍历每个函数指针。
您的意思是问,如果有可能保持函数指针*在*载体?因为将函数指针*作为向量作为向量不是函数,所以没有任何意义。 – 2014-10-01 03:39:40
是的。更多细节和例子在这里:http://stackoverflow.com/questions/23488326/c-stdvector-of-references – alpartis 2014-10-01 03:44:09
@MattiVirkkunen技术上我想知道我们可以做到这一点? – Denny 2014-10-01 03:44:32