c++ vector 为什么不支持pop_front

发布于 2021-11-13 20:13:25 字数 81 浏览 799 评论 9

c++ 的vector不支持pop_front,难道是觉得效率不高,速度慢,那为啥支持insert,如果我在一开头插入一个元素,那效率还不是很低吗? 请高手赐教!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

小情绪 2021-11-18 01:49:30

但效率很低,复杂度为O( n )

复古式 2021-11-18 01:49:30

pop_front意味着你后面的所有元素都向前移一个地址,如果你的vector有10000000个元素,那你就死在这个函数上了。

千纸鹤带着心事 2021-11-18 01:49:29

拜托,最前最后的操作复杂度是o(1)好不好

梅窗月明清似水 2021-11-18 01:49:28

@googler vector是连续存储的。。。。。

千笙结 2021-11-18 01:47:47

详见 think in C++第二卷 模板编程 用vector实现堆栈

疾风者 2021-11-18 01:46:30

我可以很负责任的告诉你vector是支持pop front

//

void popfront(vector<int > &aV)

{

    if(aV.size()!=0)

    aV.erase(0);

}

私藏温柔 2021-11-17 21:32:45

vector是连续存储的(数组实现),便于随机访问,不便于插入元素,插入元素效率较低,如果插入可以插入到末尾,如果经常插入,建议用list(list不是连续存储的,链表实现),便于插入删除,不善于随机访问

彼岸花ソ最美的依靠 2021-11-17 01:50:06

性能上可能是一方面,安全性可能也是要考虑的

彩扇题诗 2021-11-15 18:42:28

vector是连续存储的(数组实现),便于随机访问,不便于插入元素,插入元素效率较低,如果插入可以插入到末尾,如果经常插入,建议用list(list不是连续存储的,链表实现),便于插入删除,不善于随机访问

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文