是否存在“强”迭代器之类的东西?我的意思是迭代器坚持它所引用的值而不是它所在的地址,这样如果该值被交换到不同的地址,迭代器将继续在这个新地址中指向它;不管它在数据结构中移动到哪里?
是的,也不是。但为什么?你想要什么std::iter_swap(strong_a, strong_b);
to do?
正如 Karoly Horvath 指出的那样,您可以实现拥有自己的迭代器的自己的容器(迭代器只是一个概念,而不是任何一种类型)。
至于一种“实现与标准库很好地配合的方法”的方法,这取决于您想要的标准库的哪一部分。您不能向容器添加东西(除非您能找到一种方法来使用分配器或其他东西来实现您想要的东西)。但是,如果您以某种方式创建自己的算法,那么您就会与标准算法具有一定程度的兼容性。
最后,您可能可以使用特殊的包装类来实现类似的操作,它可以让您执行类似的操作std::vector<strong_pointable<int>>
where strong_pointable<int>
通常会像 int 一样,但让我们提供一种方法来获取特殊的“强指针”或任何您想要的名称,以便在移动构造时跟踪事物。
但这是一件奇怪的事情。如果您想要此功能,我怀疑您做错了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)