C++ : syntax for passing iterator to a function?

标签 c++ iterator

我正在制作一个类,它是一种容器,我想制作一个可以采用“第一个”和“最后一个”迭代器的构造函数,如 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/

相关文章:

c++ - priority_queue.top() 没有返回正确的对象

c++ - 对于具有线性存储的容器,可以使用原始指针而不是具有 STL 算法的迭代器吗?

java - 嵌套列表迭代器。程序不会终止

python - 遍历类文件和调用 readline 之间的区别

C++访问冲突读取位置,类this指针为NULL

c++ - 是否有一个简单的 C 或 C++ 函数来计算字符串的 sha1 哈希?

c++ - 离屏渲染 opengl 4.5 多采样 FBO

c++ - 为什么将 'char' 分配给 'char' 会产生段错误? C++

c++ - 如何为一个类提供多个开始/结束代理

lua - 为什么这在 Lua 中有效? - for k, v in next, t, nil do print(k, v) end