我正在制作一个类,它是一种容器,我想制作一个可以采用“第一个”和“最后一个”迭代器的构造函数,如 std::vector 和其他标准容器。正确的语法是什么? (我想要一个模板函数,它可以接受任何可用的第一个/最后一个迭代器类型(就像我认为的标准库)。非常感谢!
举个例子,我想要这样的东西:
template<class ...> MyClass(... first, ... last)
但是……是什么?
非常感谢。
关于第一个答案: 我想要一个将迭代器作为参数的特定构造函数(因为我已经有了将值和指针作为参数的构造函数)
编辑: 这样可以吗?
template<class T1, class T2> MyClass(std::iterator<T1, T2> first, std::iterator<T1, T2> last)
最佳答案
...
可以是任何你想要的,它只是一个占位符名称,用于任何类型。我认为你需要阅读 a good book .
template<class Iter> MyClass(Iter first, Iter last)
Iter
是一个通用名称,如果该类型应该表示一个迭代器。另一个选项可能是 InIt
来表示迭代器不应该是输出迭代器。
关于C++ : syntax for passing iterator to a function?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10770946/