C++多重映射 insert()用于将一个元素或一系列元素插入到一个多重映射中。
single element (1) pair<iterator,bool> insert (const value_type& val); //until C++ 11 hint (2) iterator insert (iterator position, const value_type& val); //until C++ 11 range (3) template <class InputIterator> void insert (InputIterator first, InputIterator last); //until C++ 11 single element (1) pair<iterator,bool> insert (const value_type& val); template <class P> pair<iterator,bool> insert (P&& val); //since C++ 11 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); //since C++ 11 initializer list (4) void insert (initializer_list<value_type> il); //since C++ 11
val - 要插入multimap的键值。
position - 提示插入元素的位置。
first - 要插入的参数的开始。
last - 要插入的参数的末尾。
il - 初始化列表。
如果插入了单个元素,则它将迭代器返回到将新元素插入到multimap中的位置。
链接:https://www.learnfk.comhttps://www.learnfk.com/c++/cpp-multimap-insert-function.html
来源:LearnFk无涯教程网
或者,如果元素带有提示插入,则它将返回一个迭代器,该迭代器指向将新元素插入到multimap中的位置。
让我们看一下将元素插入multimap的简单示例:
#include <iostream> #include <map> using namespace std; int main() { multimap<char, int> m = { {'a', 1}, {'b', 2}, {'c', 3}, }; //inserting new element m.insert(pair<char, int>('b', 4)); m.insert(pair<char, int>('c', 5)); cout << "Multimap contains following elements" << endl; for (auto it = m.begin(); it != m.end(); ++it) cout << it->first << " = " << it->second << endl; return 0; }
输出:
Multimap contains following elements a = 1 b = 2 b = 3 c = 4 c = 5
在上面的示例中,它只是插入具有给定键值对的元素。
让我们看一个简单的示例,将元素插入指定位置:
#include <iostream> #include <map> using namespace std; int main(void) { multimap<char, int> m = { {'b', 2}, {'c', 3}, {'d', 4}, }; //inserting element with the given position m.insert(m.begin(), pair<char, int>('a', 1)); m.insert(m.end(), pair<char, int>('d', 5)); cout << "Multimap contains following elements" << endl; for (auto it = m.begin(); it != m.end(); ++it) cout << it->first << " = " << it->second << endl; return 0; }
输出:
Multimap contains following elements a = 1 b = 2 c = 3 d = 4 d = 5
在以上示例中,将元素插入到定义的位置,即,在开始元素{'a',1}中插入元素,在结束元素{'d',5}中插入元素。
让我们看一个简单的示例,将一个multimap的元素插入另一个:
#include <iostream> #include <map> using namespace std; int main() { multimap<char, int> m1 = { {'a', 1}, {'b', 2}, {'a', 3}, {'d', 4}, {'b', 5}, }; multimap<char, int> m2; //creating new multimap m2 m2.insert(m1.begin(), m1.end()); //inserting the elements of m1 to m2 from begin to end cout << "Multimap contains following elements" << endl; for (auto it = m2.begin(); it != m2.end(); ++it) cout << it->first << " = " << it->second << endl; return 0; }
输出:
Multimap contains following elements a = 1 a = 3 b = 2 b = 5 d = 4
在上面的示例中,multimapm1具有五个元素,而multimapm2为空。 insert()用于从m1的开头到m1的结尾插入m1到m2的元素,并显示m2多重映射的内容。
让我们看一个插入元素的简单示例:
#include <iostream> #include <map> using namespace std; int main() { multimap<int , string> m = { {1, "Java"}, {2, "C++"}, {3, "SQL"}, }; m.insert({{4,"VB"}, {3, "Oracle"}}); cout << "Multimap contains following elements" << endl; for (auto it = m.begin(); it != m.end(); ++it) cout << it->first << " : " << it->second << endl; return 0; }
输出:
Multimap contains following elements 1 : Java 2 : C++ 3 : SQL 3 : Oracle 4 : VB
在上面的示例中,使用了另一种形式的insert()函数将元素插入multimap。
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)