C ++ map insert()函數(shù)用于在map中插入新元素。
因?yàn)樵劓I在map中是唯一的,所以插入操作首先檢查給定鍵是否已存在于map中,如果鍵已存在于map中,則它不會(huì)插入map中,并且迭代器將迭代到現(xiàn)有鍵返回,否則在map中插入新元素。
single element (1) pair<iterator,bool> insert (const value_type& val); // 在 C++ 11 之前 with hint (2) iterator insert (iterator position, const value_type& val); // 在 C++ 11 之前 range (3) template <class InputIterator> void insert (InputIterator first, InputIterator last); // 在 C++ 11 之前 single element (1) pair<iterator,bool> insert (const value_type& val); template <class P> pair<iterator,bool> insert (P&& val); //從 C++ 11 開始 with hint (2) iterator insert (const_iterator position, const value_type& val); template <class P> iterator insert (const_iterator position, P&& val); range (3) template <class InputIterator> void insert (InputIterator first, InputIterator last); //從 C++ 11 開始 initializer list (4) void insert (initializer_list<value_type> il); //從 C++ 11 開始
val:要插入map的鍵值。
position:提示要插入元素的位置。
first:要插入范圍的起點(diǎn)。
last:要插入范圍的末尾。
il:初始化列表。
它返回一個(gè)布爾對(duì)來指示是否發(fā)生插入,并返回一個(gè)指向新插入元素的迭代器。
讓我們看一個(gè)將元素插入map的簡單示例。
#include <iostream> #include <map> using namespace std; int main() { map<char, int> m = { {'a', 1}, {'b', 2}, {'c', 3}, }; //插入新元素 m.insert(pair<char, int>('d', 4)); m.insert(pair<char, int>('e', 5)); cout << "Map包含以下元素" << endl; for (auto it = m.begin(); it != m.end(); ++it) cout << it->first << " = " << it->second << endl; return 0; }
輸出:
Map包含以下元素 a = 1 b = 2 c = 3 d = 4 e = 5
在上面的示例中,它只是插入具有給定鍵值對(duì)的元素。
讓我們看一個(gè)簡單的示例,將元素插入指定位置:
#include <iostream> #include <map> using namespace std; int main(void) { map<char, int> m = { {'b', 2}, {'c', 3}, {'d', 4}, }; //以給定的位置插入元素 m.insert(m.begin(), pair<char, int>('a', 1)); m.insert(m.end(), pair<char, int>('e', 5)); cout << "Map包含以下元素" << endl; for (auto it = m.begin(); it != m.end(); ++it) cout << it->first << " = " << it->second << endl; return 0; }
輸出:
Map包含以下元素 a = 1 b = 2 c = 3 d = 4 e = 5
在上面的示例中,將元素插入到定義的位置,即在開始元素{'a',1}中插入元素,在結(jié)束元素{'e',5}中插入元素。
讓我們看一個(gè)簡單的示例,將一個(gè)map的元素插入另一個(gè)map。
#include <iostream> #include <map> using namespace std; int main() { map<char, int> m1 = { {'a', 1}, {'b', 2}, {'c', 3}, {'d', 4}, {'e', 5}, }; map<char, int> m2; // 創(chuàng)建新的map容器 m2 m2.insert(m1.begin(), m1.end()); //從頭到尾插入m1到m2的元素 cout << "Map包含以下元素" << endl; for (auto it = m2.begin(); it != m2.end(); ++it){ cout << it->first << " = " << it->second << endl; } return 0; }
輸出:
Map包含以下元素 a = 1 b = 2 c = 3 d = 4 e = 5
在上面的示例中,map容器m1具有五個(gè)元素,而map容器m2為空。insert()函數(shù)用于從m1的開頭到m1的結(jié)尾插入m1到m2的元素,并顯示m2容器的內(nèi)容。
讓我們看一個(gè)插入元素的簡單示例。
#include <iostream> #include <map> using namespace std; int main(void) { map<int , string> m = { {1, "Java"}, {2, "C++"}, {3, "SQL"}, }; m.insert({{4,"VB"}, {5, "Oracle"}}); cout << "Map 包含以下元素" << endl; for (auto it = m.begin(); it != m.end(); ++it){ cout << it->first << " : " << it->second << endl; } return 0; }
輸出:
Map包含以下元素 1 : Java 2 : C++ 3 : SQL 4 : VB 5 : Oracle
在上面的示例中,使用了另一種形式的insert()函數(shù)將元素插入到map中。