gpt4 book ai didi

c++ - 如何声明返回标准迭代器的函数原型(prototype)?

转载 作者:行者123 更新时间:2023-11-30 02:10:15 26 4
gpt4 key购买 nike

因此,作为一个类作业,我正在重新实现 std::vector,并且我在声明原型(prototype)时遇到了问题:

iterator insert ( iterator position, const T& x );

我的迭代器类的模板如下所示

template<typename T>
class VectorIterator : public std::iterator<std::input_iterator_tag, T>

我的 vector 类模板如下所示

template<typename T>
class Vector

我如何声明插入的原型(prototype)以返回 std::iterator 而不是我自己的 VectorIterator 类?我当然会返回我自己的 VectorIterator 类的一个实例。

最佳答案

该函数不返回 std::iterator ;它返回 std::vector<T, Alloc>::iterator .你需要输入你的 VectorIterator在你的Vector :

template <typename T>
class Vector {
typedef VectorIterator<T> iterator;
};

这是 insert 的返回类型功能。对 iterator 的任何引用和 const_iteratorstd::vector规范是您需要提供的类型定义。

关于c++ - 如何声明返回标准迭代器的函数原型(prototype)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4769887/

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