C++11:在不知道容器的情况下存储迭代器
C++11: Storing an Iterator without knowing its container
在 C++11 中,是否存在类似于 Iterator<T>
类型对象的东西,它只存储迭代器而不知道迭代器来自哪个标准容器,只知道容器的数据类型商店?
如果这样的对象不存在,它不存在的原因是什么?
不,没有通用的迭代器基础 class 和类型擦除解决方法(如果在这种情况下甚至可能的话)只会推迟以某种方式将类型存储在其他地方的需要。
也许你应该重新考虑你想要达到的目标并提出一个问题?
C++ 中的迭代器没有基础 class,因为它们是为高性能而设计的(因此不欢迎虚拟调用)。
所有迭代器类型都在编译时解析,所有 "iterator storages" 类型也必须在编译时解析。
您的用例是什么?可能还有其他更好的解决方案。
在 C++11 中,是否存在类似于 Iterator<T>
类型对象的东西,它只存储迭代器而不知道迭代器来自哪个标准容器,只知道容器的数据类型商店?
如果这样的对象不存在,它不存在的原因是什么?
不,没有通用的迭代器基础 class 和类型擦除解决方法(如果在这种情况下甚至可能的话)只会推迟以某种方式将类型存储在其他地方的需要。
也许你应该重新考虑你想要达到的目标并提出一个问题?
C++ 中的迭代器没有基础 class,因为它们是为高性能而设计的(因此不欢迎虚拟调用)。
所有迭代器类型都在编译时解析,所有 "iterator storages" 类型也必须在编译时解析。
您的用例是什么?可能还有其他更好的解决方案。