【发布时间】:2012-06-13 23:22:02
【问题描述】:
我不明白为什么 vector 的迭代器应该在重新分配发生时失效。
难道不能简单地通过在迭代器中存储一个偏移量——而不是一个指针——来防止这种情况吗?
为什么vector 不是这样设计的?
【问题讨论】:
-
每次插入除结尾或排序等之外的任何位置时,您都必须更改所有偏移量。
-
@JohnDibling:带指针的同上。
-
“你可以”和“值得做”是不同的东西。这是需求和 POV 的问题。
-
@curiousguy:如果不是为了性能,那当然值得,IMO。但由于性能问题,它不是。
-
@Mehrdad 我同意:“只为你使用的东西付费”
标签: c++ vector iterator invalidation