【发布时间】:2009-04-14 19:42:11
【问题描述】:
我正在编写一些 C++ 代码来操作一堆大小不断变化并因此不断重新分配的向量。
我想获得一个指向这些向量的“指针”,即使在重新分配向量后仍然有效。更具体地说,我只想让这些“指针”记住它们指向的向量以及它们指向的索引。当我使用标准 (*ptr) 语法取消引用它们时,我只想让它们进行明显的查找。
显然,实际指针在重新分配后将无效,我的理解是迭代器在重新分配后也无效。另请注意,我不关心元素是否插入到我的对象之前,因此这些“指针”实际上不需要记住任何东西,只需要一个向量和一个索引。
现在,我自己可以轻松编写这样的课程。有人(Boost?STL?)已经为我做过了吗?
编辑:答案没有解决我的问题。 我问这个功能是否是任何标准库。我认为答案是“否”?
【问题讨论】:
-
附言。如果这是一个愚蠢/重复的问题,如果有人提供参考,我很乐意将其删除。谢谢!
-
您有什么理由不能为此使用 std::vector 吗?
-
显然,因为他不仅要保留向量,还要保留向量中的位置。如果向量从未重新分配,他会想要一个迭代器。想想“vector
bar; Myiterator mi(bar, 3);”所以 *mi 永远是 bar[3]。 -
你需要一个 bool* 到 std::vector
吗?可能会很痛苦 -
我认为标准库(STL 和 Boost)中没有解决方案。