摘要:
其实微软的stl list是一个比较鸡肋的东西。按照理解,链表(list)的插入和删除时间和空间开销应该比顺序表(vector)的效率更高。考虑删除操作,由于vector删除的时候,会存在内存拷贝,所以时间和空间效率开销肯定较之于list大,这个毫无疑问。但是令我始料不及的是list的push_back操作竟然比vector慢,而且慢很多。根据笔者推断有可能是由于stl的list是双向链表,所以这种push_back会涉及到内存的分配和列表关系的维护,所以导致时间开销大。但是实际上vector频繁的push_back,会使得预留空间不够的时候,重新申请空间导致的不必要的开销。stl要是有一个单 阅读全文