gpt4 book ai didi

c++ - 为什么 std::equal 模板由两个类参数化?

转载 作者:太空宇宙 更新时间:2023-11-04 15:29:46 25 4
gpt4 key购买 nike

我正在使用 Andrew Koenig 和 Barbara E. Moo 的 Accelerated C++ 学习 C++。在练习 8-2 中,作者要求我们实现一些库算法,其中有 equal。

这是我写的:

template <class In>
bool my_equal(In b,In e,In d)
{
for (;b!=e;++b,++d)
if (*b!=*d) return false;
return true;
}

当我对照实现进行检查时,我发现我的实现几乎相同,只是它们在所有地方都使用不同的类来参数化 b、e 和 d。谁能解释为什么这是必要的?

最佳答案

有两种模板迭代器类型,因此即使元素相同,也可以比较来自不同容器的元素。例如,在最简单的情况下比较 std::vector<int>std::deque<int>不适用于单个迭代器类型,而使用两种迭代器类型可以比较 int 的序列不需要额外的逻辑。

关于c++ - 为什么 std::equal 模板由两个类参数化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57559646/

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