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