gpt4 book ai didi

c++ - vector < vector > : verify that all have equal sizes

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:16:16 24 4
gpt4 key购买 nike

是否有 std/boost 算法来验证一个 vector 中的所有 vector 是否具有相同的大小?推而广之,所有元素的属性都相同吗?

在下面的示例中,我使用了我正在寻找的假设的 std::all_equal:

typedef std::vector<int> Line;
std::vector<Line> lines;
lines.push(Line(10));
lines.push(Line(11));

auto equalLengths = std::all_equal(lines.begin(), lines.end(),
[](const Line& x){ return x.size(); });

(并且通过扩展:

std::vector<MyClass> vec;
auto equal = std::all_equal(std::begin(vec), std::end(vec),
[](const MyClass& x) { return x.property(); });

)

最佳答案

怎么样

#include <algorithm> // for std::all_of

auto const required_size = lines.front().size();
std::all_of(begin(lines), end(lines),
[required_size](const Line& x){ return x.size() == required_size; });

不幸的是,它不适用于空列表,您必须以某种方式将所需的大小放入谓词中。

关于c++ - vector < vector > : verify that all have equal sizes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21856361/

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