vector操作慢吗?
STL序列容器向量,deque,list使用谚语:
1.当只添加或删除序列末尾的元素时,vector非常有效。可以在vector的开头和中间插入元素,但是效率很低。因为您希望将所有元素移动到插入点之后,并在空闲存储区中分配一个新的内存区域。从开头和中间删除元素也比较慢,因为元素也是移动的。
2.在序列容器中间添加和删除元素应该使用列表容器。事实上,使用列表容器可以有效地在序列中的任何位置插入元素,而无需移动现有的元素,并且删除列表中的元素也更快。list容器的主要限制是随机访问元素比较慢,因为需要遍历整个列表,所以STL的sort()算法不能用于list,因为它需要一个提供随机访问元素的迭代器。
3.以与vector容器相同的方式创建一个给定大小的dequee对象(像vetcor一样,可以在dequee序列中间添加和删除元素。但是也比较慢,因为你总是要复制现有的元素)。Deque优于vector容器的地方在于,它可以高效地添加或删除序列开头和结尾的对象,因此在需要这些函数时,需要选择这种类型的容器。
所以可以试试德雀的插尾。