vector 容器下的 insert() 方法拥有返回值,由于insert() 方法拥有4种重载函数,他的返回值不尽相同。

第一种,插入单个元素后的返回值:

 1 #include <iostream>
2 #include <vector>
3
4 using namespace std;
5
6 int main()
7 {
8 int test[] = { 111,222,333,444 };
9 vector<int>num(test, test + 4);
10
11 vector<int>::iterator it = num.insert(num.begin(), 888); //用一个迭代器类型的 it 来接受 insert() 的返回值
12
13 cout << "===使用一个迭代器类型的 it 遍历容器===" << endl;
14
15 for (int i = 0; i < num.size(); i++)
16 {
17 cout << *it++ << endl;
18 }
19
20 return 0;
21 }

打印结果:

第二种,插入多个元素后的返回值:

这里可以发现明显的一点,insert() 的返回值为插入的地址

 1 #include <iostream>
2 #include <vector>
3
4 using namespace std;
5
6 int main()
7 {
8 int test[] = { 111,222,333,444 };
9 vector<int>num(test, test + 4);
10
11 vector<int>::iterator it = num.insert(num.begin()+3, 888); //用一个迭代器类型的 it 来接受 insert() 的返回值
12
13 cout << "===将整个 num 遍历===" << endl;
14
15 for (int i = 0; i < num.size(); i++)
16 {
17 cout << num[i] << endl;
18 }
19
20 cout << endl << "===使用一个迭代器类型的 it 遍历容器===" << endl;
21
22 for (int i = 0; i < num.size()-3; i++)
23 {
24 cout << *it++ << endl;
25 }
26
27 return 0;
28 }

打印结果:

因为插入位置是 begin() +3,所以返回值的地址也是 begin() +3。

第三种,使用其他容器的迭代器插入多个元素的返回值:

 1 #include <iostream>
2 #include <vector>
3
4 using namespace std;
5
6 int main()
7 {
8 int test[] = { 111,222,333,444 };
9 vector<int>num(test, test + 4);
10 vector<int>num_1(test + 2, test + 4);
11
12 vector<int>::iterator it = num.insert(num.begin(), num_1.begin(), num_1.end()); //用一个迭代器类型的 it 来接受 insert() 的返回值
13
14 cout << "===使用一个迭代器类型的 it 遍历容器===" << endl;
15
16 for (int i = 0; i < num.size(); i++)
17 {
18 cout << *it++ << endl;
19 }
20
21 return 0;
22 }

打印结果:

======================================================================================================================

STL—— 容器(vector)数据插入insert()方法 的返回值的更多相关文章

  1. getSqlMapClientTemplate().insert()方法的返回值问题

    insert方法的返回值     今天碰到一个问题,就是关于ibatis的insert方法的返回值的问题.在网上找了很多例子,自己也亲自试了一下. 最后得出结论:insert方法返回的是在表中插入记录 ...

  2. 从零开始写STL—容器—vector

    从0开始写STL-容器-vector vector又称为动态数组,那么动态体现在哪里?vector和一般的数组又有什么区别?vector中各个函数的实现原理是怎样的,我们怎样使用会更高效? 以上内容我 ...

  3. STL容器内数据删除

    STL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如:vector .deque):另一类是以不连续的节点形式存储的容器(如:list.set.map).在使用erase方法来删除元素时 ...

  4. 【mybatis】mybatis执行一个update方法,返回值为1,但是数据库中数据并未更新,粘贴sql语句直接在数据库执行,等待好久报错:Lock wait timeout exceeded; try restarting transaction

    今天使用mybatis和jpa的过程中,发现这样一个问题: mybatis执行一个update方法,返回值为1,但是数据库中数据并未更新,粘贴sql语句直接在数据库执行,等待好久报错:Lock wai ...

  5. Controller方法的返回值

    方法的返回值1.ModelAndView这个就不多说,这是最基础的,前面定义一个ModelAndView,中途使用addObject方法添加属性,再返回.视图解析器会自动扫描到的.2.String这个 ...

  6. java中Arrays类中,binarySearch()方法的返回值问题

    最近在复习Java知识,发现果然不经常使用忘得非常快... 看到binarySearch()方法的使用时,发现书上有点错误,于是就自己上机实验了一下,最后总结一下该方法的返回值. 总结:binaryS ...

  7. SpringMVC由浅入深day01_10@RequestMapping_11controller方法的返回值

    10 @RequestMapping 10.1 Url路径映射 @RequestMapping(value="/item")或@RequestMapping("/item ...

  8. 7 -- Spring的基本用法 -- 10... 获取其他Bean的属性值;获取Field值;获取任意方法的返回值

    7.10 高级依赖关系配置 组件与组件之间的耦合,采用依赖注入管理:但基本类型的成员变量值,应直接在代码中设置. Spring支持将任意方法的返回值.类或对象的Field值.其他Bean的getter ...

  9. 关于ajax中return并不能作为方法的返回值

    接下来关于ajax中的return值最后没有办法是方法的最终返回值问题 login(username,password) { console.log("进入方法"); $.ajax ...

随机推荐

  1. DockerInstall

    1.安装Tomcat 2.安装mysql [1].pull [root@pluto tomcat7logs]# docker pull mysql:5.6 [root@pluto tomcat7log ...

  2. Gulp自动化构建的基本使用

    Study Notes 本博主会持续更新各种前端的技术,如果各位道友喜欢,可以关注.收藏.点赞下本博主的文章. Gulp 用自动化构建工具增强你的工作流程! gulp 将开发流程中让人痛苦或耗时的任务 ...

  3. Monitor的扩展支持string的超时锁

    对Monitor的使用可以防止lock的时间过长并且可以设置其对应的超时时间达到对预期代码的一个控制,合理的使用timeout可以有助于程序的健壮性.但是对于不同的并发程序可能某些时候我们需要的粒度是 ...

  4. js 进度条效果

    <!DOCTYPE html><html><head><meta charset="utf-8"><title>< ...

  5. 如何用ABBYY解决文档图像存在缺陷,OCR 准确性低的问题

    扭曲的文本行.歪斜.噪声及扫描图像和数码照片中常见的其他缺陷可能会降低识别质量.ABBYY FineReader,提供各种 自动和手动工具去除这些缺陷. 如何手动编辑图像 如果您禁用了自动预处理功能或 ...

  6. 细说FL Studio中的Wasp合成器功能

    FL Studio 简称FL,因其Logo像水果,故国人亲切的叫他"水果"本章节采用图文结合的方式给大家讲解FL Studio中的Wasp合成器功能.感兴趣的朋友可以一起来交流哦. ...

  7. guitar pro系列教程(二十二):Guitar Pro在乐谱上的工作【二】

    我们在上一篇文章中给大家介绍了Guitar Pro的工作面板和音轨功能,今天我们将会给大家介绍Guitar Pro这款吉他谱学习软件得音频设置面板,在该面板中包含了声卡得选择.MIDI的输入输出及音轨 ...

  8. 思维导图软件iMindMap:生活工作的好帮手

    思维导图iMindMap这样的好帮手在生活工作中能帮你打破困境,,至于它有哪些力所能及的事情就是下面小编要跟你讲的: 你是否经常遇到过这样的情况: 作为学生,你觉得学习紧张,虽然三更眠五更起,还是成绩 ...

  9. H5系列之svg

    svg呢,跟canvas其实都是用来画图的,只不过svg画的图,是矢量图,矢量图有个特点是,放大缩小,不会失真,canvas呢,是逐像素进行渲染的. 也就是,他依赖分辨率,会根据分辨率来决定图形是否清 ...

  10. Java IDEA 根据mybatis-generator-core自动生成代码支持sqlserver获取备注(二)

    mybatis generator代码生成虽然好用,但是好像不支持sqlserver获取备注信息,这里我主要分享mybatis generator改写后支持sqlserver获取备注信息,mysql以 ...