【问题标题】:Equal C++ STL Container Contents Algorithm相等的 C++ STL 容器内容算法
【发布时间】:2012-04-12 09:56:54
【问题描述】:

STL 或 Boost 是否包含用于比较不同类型容器的内容的算法。如果没有人写过这样的算法。我会称它为equal_contents 或简称为equals。当断言某些算法为不同的输入容器类型返回相同的内容时,这很有用。

【问题讨论】:

    标签: c++ algorithm stl containers


    【解决方案1】:

    是的,有std::equal 算法。您需要将迭代器传递给该算法,容器的类型无关紧要。

    【讨论】:

    • 一个警告:您需要先检查尺寸是否匹配;否则,std::equal 可能会给出误报,或者迭代其中一个结束。
    • @Mike Seymour 迭代器怎么可能??
    • @innochenti:假设你有一个大小为 3 的向量和一个大小为 2 的集合,你可以像这样使用 equal:std::equal(v.begin(), v.end(), s.begin());。在这种情况下,equal 将尝试取消引用 s.end()
    • C++14 使用 last2 参数 en.cppreference.com/w/cpp/algorithm/equal 解释了这个“警告”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 2015-02-05
    • 2014-06-17
    • 2012-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多