4.5.2 元素的插入与删除
使用push_back()或pop_back()成员函数从向量结尾处添加或移除元素的方法效率极高。然而,在向量的其他任意某处(例如使用insert()或erase())添加或移除元素可能需要更多的工作,因为可能必须移动多个元素来完成插入或删除操作。对于较小的向量而言,这种额外开销通常可以忽略不计;但是对于较大的向量而言(例如包含数千个元素),从向量的中间插入或删除元素可能导致性能损失。
幸运的是,STL提供了另一种序列容器类型list。无论序列的大小是多少,此类型都允许元素的高效插入与删除。重点要记住的是,单独某种容器类型不是适用于所有问题的解决方案。尽管vector功能丰富,而且是最常用的STL容器类型,但某些时候使用其他容器类型或许更有意义。
陷阱
不要仅因为需要在序列的中间插入或删除元素就放弃使用向量。对于游戏程序而言,它可能仍然是个较好的选择。起决定性作用的是使用序列的方式。如果序列较小或者插入和删除操作较少,那么最好的选择可能仍然是使用向量。