gpt4 book ai didi

c++ - 一个 "strong"迭代器指针/引用

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:16:49 25 4
gpt4 key购买 nike

是否存在“强”迭代器之类的东西。我的意思是一个迭代器坚持它引用的值而不是它所在的地址,这样如果值被交换到不同的地址,迭代器将继续指向这个新地址中的它;不管它在数据结构中被移动到哪里?

最佳答案

是也不是。但为什么?你想要什么std::iter_swap(strong_a, strong_b);做什么?

正如 Karoly Horvath 指出的那样,您可以实现自己的容器,它有自己的迭代器(迭代器只是一个概念,不是任何一种类型)。

至于“实现一个可以很好地与标准库一起工作”的方法,这取决于您想到的是标准库的哪一部分。您不能向容器中添加东西(除非您能想出一种方法来使用分配器或其他东西来实现您想要的东西)。但是,如果您以某种方式创建了自己的算法,那么您将在一定程度上与标准算法兼容。

最后,您可能可以使用特殊的包装器类来实现类似的功能,这样您就可以执行类似 std::vector<strong_pointable<int>> 的操作。其中 strong_pointable<int>通常会像 int 一样工作,但让我们提供一种方法来获取特殊的“强指针”或任何你想调用它的东西,它会在事物被移动构造时跟踪它们。

但这是一个奇怪的要求。如果您想要此功能,我怀疑您做错了。

关于c++ - 一个 "strong"迭代器指针/引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29939340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com