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 }

打印结果:

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

猜你喜欢

转载自www.cnblogs.com/CooCoChoco/p/12710048.html