- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
经典 C++ 有时会为谓词算法选择 _if 后缀(相对于那些取值的算法),例如find_if
/find
count_if
/count
有时是not (例如any_of
虽然带谓词但没有_if后缀,并且没有any_of
算法的值版本)。
据我所知,C++20 filter
或 ranges::any_of
没有值重载。
我浏览了 C++20 的整个 cppreference 页面,但一无所获,我认为这只是因为 C++20 范围库非常有限(只有几个 View )并且它匹配现有功能(如果 any_of
).
我最好的尝试是只包装逻辑并给它一个新名称。
template <typename Range, typename Value>
static bool contains(const Range& range, const Value& value)
{
return std::ranges::find(range, value) != range.end();
}
最佳答案
Do C++20 ranges have value(not predicate) version of filter or any_of?
没有。
但是很容易写:
std::ranges::any_of(r, [&](auto const& e){ return e == value; })
或者,如果认为这太长,您可以添加一个助手:
inline constexpr auto equals = [](auto const& value){
return [=](auto const& e){ return e == value; };
};
您可以使用它来缩短 any_of
调用:
std::ranges::any_of(r, equals(value));
或者您可以使用任意数量的库来编写占位符 lambda,最近是 Boost.Lambda2 :
std::ranges::any_of(r, _1 == value);
关于c++ - C++20 范围是否具有过滤器或 any_of 的值(非谓词)版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67695084/
我正在尝试检查一个字符串以查看它是否满足所有要求,而这些要求之一是没有'*'或'%'。使用std::any_of检查整个字符串,并使其与isupper和islower一起使用,但无法为这2个字符弄清楚
这是我的代码: #include #include using namespace std; void input_guess_number(int guess_number[]){ in
我有一个过滤函数列表。如果这些函数中的任何一个返回“true”,我就不应该进一步处理事件。 std::any_of 似乎适合这个用例,但我希望保证过滤器函数按照它们添加到我的列表中的顺序被调用(因为它
于是我尝试使用Boost Hana的any_of方法,但是和实现中的描述不同的是,它仍然调用最先满足predicate的元素之后的元素。这是已知错误吗? 这是一个 MCVE : #include #
C++11 介绍 any_of至algorithm秒。 这似乎与 find_if 完全一样. 假设我有一个仿函数:function foo;还有一个数组:vector bar; 这两个调用似乎做了完全
我想检查 vector 中是否存在某个值。它最有可能位于 vector 的末尾,使用像这样的反向迭代器是否有意义: std::vector v{}; //... add a lot of values
考虑这段代码: #include #include #include struct Animal { virtual ~Animal() = default; }; struct Dog : A
我有一个需要运行 MongoDB 查询的要求,如下所示: db.collection.find({ $or : [{"field1" : "value1"}, {"field2" : "value2"
给定以下代码, std::vector numbers = {1, 2, 3, 4, 5}; std::any_of(std::begin(numbers), std::end(numbers),
所以我正在尝试使用 std::any_of()函数,但是 C++ Builder 6 说有一个错误: [C++ Error] Unit1.cpp(93): E2316 'any_of' is not
我无法在 for 循环 和 std::any_of 之间做出决定,例如: QString fileName = "Whatever"; // might contain a key-string w
我将 MongoDB 与 Mongoid 一起使用,并在我们查看权重等之前尝试将基本搜索作为占位符。any_of 方法似乎正在查找我的嵌入式文档,但不是那些由关系联系起来。有谁知道 any_of 是否
我遇到了 mongoid any_of 的问题。我正在尝试查找一个字段 > 0 或另一个字段 > 0 的对象。我的查询是: Model.any_of(best_friend_method.gt =>
一段工作代码: std::vector::iterator it = std::find_if(intersections.begin(), intersections.end(), [&](cons
我有一个与 STL 算法相关的问题。 来自 http://www.cplusplus.com/reference/algorithm/我看到 any_of()、all_of() 和 none_of()
假设我有一个std::vector并想知道它是否包含 3或者将迭代器获取到 3 。 我不想使用std::set或std::multiset无论出于何种原因。 我想在 std::execution::p
我正在使用带有太阳黑子 solr 的 rails 4.0。我希望这样做: (read_flag IS TRUE) OR ( (read_flag IS NIL) AND (fulltext param
我有以下类(class): Class Foo { public: bool operator ==(const Foo& f); ... private: set> poin
这是我最近在 VS2012 中编写的一些代码: ///Lambda: Returns true if the field is significant within a baseline co
我有这样的设置模型数据 [52] pry(main)> Setting.all.to_a => [#, #, #, #] 现在我想要一组具有特定类(class)的
我是一名优秀的程序员,十分优秀!