这是相对而言啊, 像vector的插入就可能要移动元素,set的插入可能要倒转。这些就是费时的操作。而vector向后压元素,set的查找 就很快。其实我是想问 清空操作 是把所有的元素删除 释放空间;还是保留空间,下次添加元素时直接放进去,不要再申请空间了?赋值操作 是把以前的元素删除然后把新的一个一个拷进来,还是有别的更好的方法?劳烦各位了
2 回答
千万里不及你
TA贡献1784条经验 获得超9个赞
清空操作,删除所有元素,但是内存空间保留。这里还有一点需要注意,就是当你需要对vector赋里面添加值时,vector一般都会申请一段内存,直到你用光所申请的内存。然后程序会开辟另一块连续的更大的内存,把原先内存里面的元素一个个拷贝到新开辟的内存,然后再在后面添加新元素。
赋值操作,一般来说就是删除所有元素,然后把心的一个个拷贝进来。当然效率是比较低的,这里有个效率更高的办法,如果你不需要原来vector里面的值,那你对新的vector可以调用
新vector.swap(原vector)
交换两个vector的引用,无需赋值,时间复杂度是常数级别。
添加回答
举报
0/150
提交
取消