gpt4 book ai didi

C++ 从对象 vector 中选择

转载 作者:太空狗 更新时间:2023-10-29 20:06:27 25 4
gpt4 key购买 nike

我有一个具有以下成员方法的类 A:

bool A::test();

我有一个 vector<A> v的对象。我想创建一个新的 vector<A>从 v 中,仅选择那些 A::test() 返回 true 的元素。

使用 STL 和 boost::lambda(我没有 C++11) 吗?

最佳答案

虽然 copy_if 没有进入早期标准,但您可以使用 remove_copy_if 完成同样的事情。

如果您有可用的 C++11,它会非常简单:

std::remove_copy_if(
v.begin(),
v.end(),
std::back_inserter(b),
[] (const A& val) -> bool
{ return val.test(); });

因为你没有 C++11,仍然很容易:

// global free function
bool test_a(const A& a) { return a.test(); }

std::remove_copy_if(
v.begin(),
v.end(),
std::back_inserter(b),
test_a);

关于C++ 从对象 vector 中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7895531/

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