vector为什么不能再首位添加和删除

vector为什么不能再首位添加和删除,第1张

vector是一段连续的内存。如果要在头部插入数据,就需要把vector所有的元素后移,效率很低的。所以如果有头部插入的需求,可以用list。list是双向链表,头部插入只是指针变动,效率很高。

v.insert(v.begin(),elem) //在v的最前面添加一个元素\x0d\x0a\x0d\x0a用例:\x0d\x0a#include \x0d\x0aint main(int argc, char* argv[])\x0d\x0a{\x0d\x0a vector v\x0d\x0a v.push_back(5)\x0d\x0a v.push_back(6)\x0d\x0a v.insert(v.begin(), 4)\x0d\x0a for (unsigned int i = 0i 回答于 2022-11-16

v.insert(v.begin(),elem) //在v的最前面添加一个元素

用例:

#include <vector>

int main(int argc, char* argv[])

{

vector<int>v

v.push_back(5)

v.push_back(6)

v.insert(v.begin(), 4)

for (unsigned int i = 0i <v.size()++i)

{

printf("%d ", v[i])

}

system("pause")

return 0

}

v.insert(pos,elem)

在pos位置插入一个elem拷贝,传回新数据位置。

v.insert(pos,n,elem)

在pos位置插入n个elem数据。无返回值。

v.insert(pos,beg,end)

在pos位置插入在[beg,end)区间的数据。无返回值。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11629391.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存