vector 容器可以使用 vectorName.insert() 方法插入元素,vectorName.insert() 函數一共有4種重載方法:
第一種 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 cout << "==========遍歷容器===========" << endl; 12 13 for (int i = 0; i < num.size(); i++) 14 { 15 cout << num.at(i) << endl; 16 } 17 18 num.insert(num.begin(), 888); //初始位置插入 888 ,第一個參數需使用迭代器來確認插入位置 19 20 cout << "===使用 insert() 后遍歷容器===" << endl; 21 22 for (int i = 0; i < num.size(); i++) 23 { 24 cout << num.at(i) << endl; 25 } 26 27 return 0; 28 }
打印結果:
由於第一個參數是迭代器,由於是地址,我們也可以對其進行地址加減操作進行元素插入,比如在第二個元素后插入元素,我們用 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 cout << "==========遍歷容器===========" << endl; 12 13 for (int i = 0; i < num.size(); i++) 14 { 15 cout << num.at(i) << endl; 16 } 17 18 num.insert(num.begin() + 2, 888); //初始位置插入 888 ,第一個參數需使用迭代器來確認插入位置 19 20 cout << "===使用 insert() 后遍歷容器===" << endl; 21 22 for (int i = 0; i < num.size(); i++) 23 { 24 cout << num.at(i) << endl; 25 } 26 27 return 0; 28 }
打印結果:
第二種 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 cout << "==========遍歷容器===========" << endl; 12 13 for (int i = 0; i < num.size(); i++) 14 { 15 cout << num.at(i) << endl; 16 } 17 18 num.insert(num.begin(), 3, 888); //初始位置插入3個 888 ,第一個參數需使用迭代器來確認插入位置 19 20 cout << "===使用 insert() 后遍歷容器===" << endl; 21 22 for (int i = 0; i < num.size(); i++) 23 { 24 cout << num.at(i) << endl; 25 } 26 27 return 0; 28 }
打印結果:
與第一種用法一樣,由於第一個參數是迭代器地址,可以通過地址加減控制插入位置。
第三種 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 vector<int>num_1(test + 2, test + 4); 11 12 cout << "==========遍歷容器===========" << endl; 13 14 for (int i = 0; i < num.size(); i++) 15 { 16 cout << num.at(i) << endl; 17 } 18 19 num.insert(num.begin(), num_1.begin(), num_1.end()); //初始位置插入 從 begin 到 end 的元素 20 21 cout << "===使用 insert() 后遍歷容器===" << endl; 22 23 for (int i = 0; i < num.size(); i++) 24 { 25 cout << num.at(i) << endl; 26 } 27 28 return 0; 29 }
打印結果:
===========================================================================================================================