C ++ 11:在不知道其容器的情况下存储迭代器

时间:2015-09-22 15:06:42

标签: c++ c++11 iterator std c++-standard-library

在C ++ 11中,是否存在类型为Name | LastName | someMoreData aaa | bbb | ccc ddd | eee | fff aaa | bbb | ccc 的对象的行,它只存储迭代器而不知道迭代器源自哪个std容器,只有容器存储的数据类型?

如果这样的物体不存在,那么它缺席的原因是什么?

2 个答案:

答案 0 :(得分:3)

C ++中没有迭代器的基类,因为它们是为高性能而设计的(因此不欢迎虚拟调用)。

所有迭代器类型都在编译时解析,所有“迭代器存储”类型也必须在编译时解析。

你的用例是什么?可能还有另一个更好的解决方案。

答案 1 :(得分:0)

不,没有常见的迭代器基类和类型擦除变通方法(如果在这种情况下甚至可能)只会推迟在某个地方存储类型的需要。

也许你应该重新思考一下你想要达到的目标并提出一个问题?