Fork me on GitHub

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

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 }

打印结果:

 

 

 

 

 

 

 

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

 

posted @ 2020-04-16 03:10  索智源  阅读(2241)  评论(0编辑  收藏  举报