C++ vector 元素数量变化不能使用范围 for

如果循环体内部包含有向vector对象添加元素的语句,则不能使用范围for循环,具体原因将在5.4.3节(第168页)详细解释。

WARNING范围for语句体内不应改变其所遍历序列的大小

▲《C++ Primer》 P91


不能在范围 for 循环中向 vector 对象添加元素。另外一个限制是任何一种可能改变vector对象容量的操作,比如 pushback,都会使该 vector对象的迭代器失效。9.3.6节(第315页)将详细解释迭代器是如何失效的。

WARNING:谨记,但凡是使用了迭代器的循环体,都不要向迭代器所属的容器添加元素。

▲《C++ Primer》 P99


posted @ 2024-09-18 19:19  double64  阅读(9)  评论(0编辑  收藏  举报