问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C++ list容器有个函数叫insert(),和push_back()有什么不同?给个程序说一下INSERT的用法,谢谢!

发布网友 发布时间:2022-04-30 04:15

我来回答

4个回答

热心网友 时间:2023-10-11 21:52

一、最大的区别在于它们的功能。

1、push_back始终将一个新元素放在vector和insert允许您选择新元素的位置。这会影响性能。

2、vector只有当需要增加内存长度时,元素才会在内存中移动,因为为其分配的内存太少。

3、另一方面insert强制在新元素的选定位置之后移动所有元素。只要给它找个地方就行了。这就是为什么insert可能比push_back高效

二、以下代码示例清晰的展示了他们的区别(代码只能使用英文标点):

using namespace std;

vector<int> v = {1, 3, 4};

v.insert(next(begin(v)), 2);

v.push_back(5);

// v now contains {1, 2, 3, 4, 5}

可以用insert执行与push_back带着v.insert(v.end(), value)

如果都在尾端添加元素的话,应该是一样的,毕竟都没有元素移动(在capacity够的情况下)

扩展资料:

C++ list容器使用方法简单介绍:

1、list使用push_front函数插入,正向遍历list,实现数据先进先出:

2、list使用push_back函数插入,pop_front弹出数据,实现另一种方式控制数据先进先出:

3、list使用begin和end函数使用正向迭代器遍历list数据:

4、两个list使用merge合并,而且支持排序,可自定义排序函数

5、使用rbegin 和rend 函数,反向迭代器遍历list数据:

6、list 使用erase函数删除数据,注意迭代器的重新赋值

注意:erase的使用时,注意迭代器的重新赋值

参考资料来源:百度百科--C++

热心网友 时间:2023-10-11 21:52

区别:

1、返回类型不同

insert返回类型为iterator或者void,push_back返回类型为void。

2、数据插入位置不同

insert插入位置为指定的插入位置,而push_back将数据插入在list的尾部。

用法

1、insert

(1)iterator insert( iterator pos, const TYPE &val );    

pos:指定位置的iterator,val:被插入的数据。

(2)void insert( iterator pos, size_type num, const TYPE &val );  

pos:指定位置的iterator,val:数据,num:数据重复次数。

(3)void insert( iterator pos, input_iterator start, input_iterator end );  

pos:指定位置的iterator,start:要插入数据的起始iterator,end:要插入数据的结束iterator。

2、push_back

void push_back( const TYPE &val );  

val:被插入的数据。

扩展资料

list的使用

1、初始化

(1)生成一个空的 list 容器

std::list<std::string> words

(2)可以创建一个带有给定数量的默认元素的列表

std::list<std::string> sayings {20}

(3)生成一个包含给定数量的相同元素的列表

std::list<double> values(50, 3.14159265)

(4)生成一个现有 list 容器的副本

std::list<double> save_values {values}

2、函数

(1)begin:将迭代器返回到开头。

(2)end:将迭代器返回到最后。

(3)empty:检查容器是否为空。

(4)size:返回当前容器内元素个数。

(5)max_size:返回当前容器能容纳的最大元素数量.

热心网友 时间:2023-10-11 21:53

insert 放到指定位置,pushback放到最后一位。下面来自c++

// inserting into a list
#include <iostream>
#include <list>
#include <vector>
using namespace std;

int main ()
{
list<int> mylist;
list<int>::iterator it;

// set some initial values:
for (int i=1; i<=5; i++) mylist.push_back(i); // 1 2 3 4 5

it = mylist.begin();
++it; // it points now to number 2 ^

mylist.insert (it,10); // 1 10 2 3 4 5

// "it" still points to number 2 ^
mylist.insert (it,2,20); // 1 10 20 20 2 3 4 5

--it; // it points now to the second 20 ^

vector<int> myvector (2,30);
mylist.insert (it,myvector.begin(),myvector.end());
// 1 10 20 30 30 20 2 3 4 5
// ^
cout << "mylist contains:";
for (it=mylist.begin(); it!=mylist.end(); it++)
cout << " " << *it;
cout << endl;

return 0;
}

热心网友 时间:2023-10-11 21:53

从定义上可以看出,insert()是在指定位置上插入数据,而push_back()是在list的末尾添加数据,位置不同, 所以这两个函数好区分。你真正应该问的是,不好区分的这两个:push_back()和append(),这两个都是添加数据的函数,都是在末尾添加数据,这才不好区分
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 宜家家居的透明玻璃碗怕烫吗? 在用迭代器遍历时遇到问题,请教各位 乐扣玻璃饭盒微波炉加热后会烫手吗? Java 中用迭代器遍历list打印的却是内存地址 求解答 在线等 obj改掉是一样的 struts中的迭代器如何和遍历Map中的List集合 如何遍历list中对象的数据 struts2迭代iterator 遍历list问题 java中 foreach 和迭代器在遍历 List 集合 一些情况下为什么能使用集合自动的删除方法删除元素? 在C#语言中如何遍历List里面的每个元素? C# 中怎么将控件设为公共的(即所有窗体都可以用这个控件) 如何使用C#编写获取机器人坐标的winform程序 Winform 中有什么好的第三方控件显示数据实现类似如下布局 Winform怎么自定义一个三个panel的控件 C# winform中有哪些第三方控件? winform编程中下面的控件是怎么做的 C# WinForm怎么代码产生控件(如Lable) C# winform 中什么是自定义控件,什么是自定义组件?有什么区别?有案例最好。 有没有比Excel好用的数据可视化工具? C# winform 自定义的控件里要怎么向所属窗体添加控件 为什么现在的抗战电视剧都被拍成了雷剧,神剧,偶像剧? 玻璃饭盒 是不是放进微波炉很不容易加热 春前草作文五百字 对联 上联:神驹轻踏春前草 下联:小燕喜穿柳上风 钢化玻璃碗怕烫吗?可承受最高多少温度? 以我是一棵春前草为题,写一篇作文 Iterator遍历和 List遍历有什么不同 春意春前草意思是什么? 春意春前草,财源雨后泉意思是什么 求解:南山灵签求财第十七签:积德人家大吉昌 乐善好施善人帮 生意好比春前草 财源犹如酒后花 glasslock玻璃盒可不可以加热 上海春前草实业有限公司怎么样? 钢化玻璃的碗好不好,装热的会不会烫手 湖南春前草科技有限公司怎么样? 春意春前草,财源雨后泉 积德人家大吉昌,乐善好施善人帮,生意好比春前草,财源犹如酒后花。上上油三斤,这个什么意思? bilibili激活码怎么用?找不到输邀请码的地方啊 在海南南山别院求得求财第十七签 积德人家大吉昌 乐善好施善人帮 生意好比春前草 财源犹如洒后花 求解 求bilibili激活码啊??? 春天车前草煲猪骨汤功效作用. 新年对联有什么好的