C ++中的std :: back_insert_iterator 17

时间:2017-01-15 21:15:22

标签: c++ stl iterator c++17

如图所示,{C ++之前的here std::back_insert_iterator 17继承自std::iterator,而它在C ++ 17中并不存在。这种变化的原因是什么?

1 个答案:

答案 0 :(得分:6)

std::iterator是一种便利。它提供了一些typedef,使用迭代器的代码很有用。这些天的首选机制是std::iterator_traits,它更灵活。

当迭代器实际上是一个指针时,它不能从std::iterator继承,所以iterator_traits一直是获取这些typedef的方法。在迭代器类型中使用typedef是类,但不是作为指针的迭代器类型,这意味着通用代码不能使用这些成员。拥有它们是非常有用的,它们会消失。