c++ - 在 C++ 中使用逻辑作为参数

标签 c++

<分区>

假设我有一个如下所示的类和 vector

class A {
private:
    int a;
    std::string b;
public:
    A();
    virtual ~A();
}

std::vector<A> vecA;

我想在满足逻辑条件(例如:obj.a < 10)的 vecA 对象 (obj) 中找到。你有没有想过创建一个搜索类。示例 B 类,我可以像这样轻松地通过逻辑要求:

B b;
Vector<A> findA = b.Find<A>(vecA, A::a < 10);

B类可能与上面的不完全一样,但希望它能轻松满足要求的当前逻辑语句。感谢您的帮助。抱歉,因为愚蠢的问题。

最佳答案

在函数式编程中,这个操作——我们从某个集合中选择所有与特定谓词函数匹配的项目——被称为过滤。在现代 C++ 中,它可以用 std::copy_if 来完成。或 remove_if来自 <algorithms> ,取决于您的情况。

关于c++ - 在 C++ 中使用逻辑作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42756806/

相关文章:

c++ - 指向类成员函数的指针

c++ - 如果没有 noexcept 移动构造函数,为什么带有 std::vector 的代码不能编译,但带有 std::unique_ptr 的代码可以编译?

c++ - 为什么我不能在我的 vector 中保留 1,000,000,000?

c++ - 正确检测UNC卷是否在线

c++ - C++ 字符串文字转义字符的规则

C++,构造读取两个实数和一个字符的程序

c++ - 为什么 pthread_getname_np() 在 Linux 的线程中失败?

c++ - 使用 OneDrive Rest API 进行 block 下载

c++ - std::wstring::find() 在 g++ 中损坏?

c++ - boost::managed_shared_memory 可以正确处理 vector 吗?