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 }

打印結果:

 

 

 

 

 

 

 

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM