gpt4 book ai didi

C++ STL算法等于

转载 作者:可可西里 更新时间:2023-11-01 16:26:16 25 4
gpt4 key购买 nike

一个特别有用的标准算法是 std::equal,其定义如下:

template <typename InputIterator1, typename InputIterator2>
inline bool equal(InputIterator1 start1,
InputIterator1 end1,
InputIterator2 start2)
{
while(start1 != end1)
{
if(*start1 != *start2) return false;
++start1;
++start2;
}
return true;
}

算法遍历 [start1, end1) 定义的范围并且[start2, start2 + (end1 – start1)) 并返回范围内的元素是否相等。请注意,该算法在两种不同类型的输入迭代器上进行了模板化。

这是为什么?

最佳答案

假设您有一个 std::list<int>std::vector<int>并想看看它们是否相等。如果std::equal没有采用不同的迭代器类型,自 std::list<int>::iterator 以来您无法使用它与 std::vector<int>::iterator 的类型不同.

这也适用于相同的容器类型但存储不同的元素。 std::vector<int>::iteratorstd::vector<long long>::iterator 不同因此,如果两个迭代器对使用相同的类型,您将无法比较它们。

关于C++ STL算法等于,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44704177/

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