如前所述, std::back_insert_iterator
在C++之前,17继承自std::iterator
C++ 17.这种变化的原因是什么?
std::iterator
很方便.它提供了一些typedef,使用迭代器的代码很有用.这些天的首选机制是std::iterator_traits
,它更灵活.
实际上,迭代器是一个无法继承的指针std::iterator
,因此iterator_traits
一直是获取这些typedef的方法.在迭代器类型中使用typedef是类,但不是作为指针的迭代器类型,这意味着通用代码不能使用这些成员.拥有它们是非常有用的,它们会消失.