STL——容器(vector)数据插入insert()方法的返回值

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

第⼀种,插⼊单个元素后的返回值:
1 #include <iostream>
2 #include <vector>
3
4using namespace std;
5
6int main()
7 {
8int 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
15for (int i = 0; i < num.size(); i++)
16 {
17 cout << *it++ << endl;
18 }
19
20return0;
21 }
打印结果:
第⼆种,插⼊多个元素后的返回值:
这⾥可以发现明显的⼀点,insert() 的返回值为插⼊的地址
1 #include <iostream>
2 #include <vector>
3
4using namespace std;
5
6int main()
7 {
8int 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
15for (int i = 0; i < num.size(); i++)
16 {
17 cout << num[i] << endl;
18 }
19
20 cout << endl << "===使⽤⼀个迭代器类型的 it 遍历容器===" << endl;
21
22for (int i = 0; i < num.size()-3; i++)
23 {
24 cout << *it++ << endl;
25 }
26
27return0;
28 }
打印结果:
因为插⼊位置是 begin() +3,所以返回值的地址也是 begin() +3。

第三种,使⽤其他容器的迭代器插⼊多个元素的返回值:
1 #include <iostream>
2 #include <vector>
3
4using namespace std;
5
6int main()
7 {
8int 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
16for (int i = 0; i < num.size(); i++)
17 {
18 cout << *it++ << endl;
19 }
20
21return0;
22 }
打印结果:
======================================================================================================================。

相关文档
最新文档