该类std::vector
有一个方便的构造函数,它允许其参数的任何输入迭代器。我想在我自己的类中实现类似的模式,因为该类在实例化时需要接受一些集合,但我希望在该集合上使用迭代器以进行封装。我想到的一种方法是使用输入迭代器类型对整个类进行模板化,但这不能是 STL 所做的,因为vector
显然只使用被迭代的类型进行模板化。当然,一个选项是模板化生成器函数,但我真的很想知道实现 STL 的编译器是如何完成的 - 不知何故,InputIterator
类型是仅特定于构造函数的类型名,即使构造函数不能被模板化。
(是的,我试图看,vector.tpp
但我无法理解)。