多重映射类似于 地图 此外,多个元素可以具有相同的键。此外,在这种情况下,不要求键值和映射值对必须是唯一的。关于multimap,需要注意的一点是,multimap始终保持所有键的排序顺序。多重映射的这些特性使得它在竞争性编程中非常有用。
null
与multimap相关的一些基本功能:
- 开始 –返回多重映射中第一个元素的迭代器
- 结束() –返回多重映射中最后一个元素后面的理论元素的迭代器
- 大小() –返回多重映射中的元素数
- 最大尺寸() –返回多重映射可以容纳的最大元素数
- 空的() –返回多重映射是否为空
- pair
insert(keyvalue,multimapvalue) –向多重贴图添加新元素
实现上述功能的C++实现:
CPP
// CPP Program to demonstrate the implementation of multimap #include <iostream> #include <iterator> #include <map> using namespace std; // Driver Code int main() { multimap< int , int > gquiz1; // empty multimap container // insert elements in random order gquiz1.insert(pair< int , int >(1, 40)); gquiz1.insert(pair< int , int >(2, 30)); gquiz1.insert(pair< int , int >(3, 60)); gquiz1.insert(pair< int , int >(6, 50)); gquiz1.insert(pair< int , int >(6, 10)); // printing multimap gquiz1 multimap< int , int >::iterator itr; cout << "The multimap gquiz1 is : " ; cout << " KEY ELEMENT" ; for (itr = gquiz1.begin(); itr != gquiz1.end(); ++itr) { cout << ' ' << itr->first << ' ' << itr->second << '' ; } cout << endl; // adding elements randomly, // to check the sorted keys property gquiz1.insert(pair< int , int >(4, 50)); gquiz1.insert(pair< int , int >(5, 10)); // printing multimap gquiz1 again cout << "The multimap gquiz1 after adding extra " "elements is : " ; cout << " KEY ELEMENT" ; for (itr = gquiz1.begin(); itr != gquiz1.end(); ++itr) { cout << ' ' << itr->first << ' ' << itr->second << '' ; } cout << endl; // assigning the elements from gquiz1 to gquiz2 multimap< int , int > gquiz2(gquiz1.begin(), gquiz1.end()); // print all elements of the multimap gquiz2 cout << "The multimap gquiz2 after assign from " "gquiz1 is : " ; cout << " KEY ELEMENT" ; for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) { cout << ' ' << itr->first << ' ' << itr->second << '' ; } cout << endl; // remove all elements up to // key with value 3 in gquiz2 cout << "gquiz2 after removal of elements less than " "key=3 : " ; cout << " KEY ELEMENT" ; gquiz2.erase(gquiz2.begin(), gquiz2.find(3)); for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) { cout << ' ' << itr->first << ' ' << itr->second << '' ; } // remove all elements with key = 4 int num; num = gquiz2.erase(4); cout << "gquiz2.erase(4) : " ; cout << num << " removed " ; cout << " KEY ELEMENT" ; for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) { cout << ' ' << itr->first << ' ' << itr->second << '' ; } cout << endl; // lower bound and upper bound for multimap gquiz1 key = // 5 cout << "gquiz1.lower_bound(5) : " << " KEY = " ; cout << gquiz1.lower_bound(5)->first << ' ' ; cout << " ELEMENT = " << gquiz1.lower_bound(5)->second << endl; cout << "gquiz1.upper_bound(5) : " << " KEY = " ; cout << gquiz1.upper_bound(5)->first << ' ' ; cout << " ELEMENT = " << gquiz1.upper_bound(5)->second << endl; return 0; } |
输出
The multimap gquiz1 is : KEY ELEMENT 1 40 2 30 3 60 6 50 6 10The multimap gquiz1 after adding extra elements is : KEY ELEMENT 1 40 2 30 3 60 4 50 5 10 6 50 6 10The multimap gquiz2 after assign from gquiz1 is : KEY ELEMENT 1 40 2 30 3 60 4 50 5 10 6 50 6 10gquiz2 after removal of elements less than key=3 : KEY ELEMENT 3 60 4 50 5 10 6 50 6 10gquiz2.erase(4) : 1 removed KEY ELEMENT 3 60 5 10 6 50 6 10gquiz1.lower_bound(5) : KEY = 5 ELEMENT = 10gquiz1.upper_bound(5) : KEY = 6 ELEMENT = 50
多重映射函数列表
作用 |
释义 |
---|---|
多重映射::运算符= | 它用于通过替换现有内容将新内容分配给容器。 |
多重映射::crbegin()和多重映射::crend() | crbegin()返回一个常量反向迭代器,该迭代器引用多重映射容器中的最后一个元素。crend()返回一个常量反向迭代器,该迭代器指向多重映射中第一个元素之前的理论元素。 |
multimap::emplace_hint() | 在multimap容器中插入键及其元素,并给出提示。 |
多重映射清除() | 从多重贴图中删除所有元素。 |
多重映射空() | 返回多重映射是否为空。 |
multimap maxsize() | 返回多重映射容器可以容纳的最大元素数。 |
多重映射值_comp() | 返回确定多重映射中元素排序方式的对象(默认情况下为“ |
多贴图渲染 | 返回一个反向迭代器,该迭代器指向多重映射容器的第一个元素之前的理论元素。 |
multimap::cbegin()和multimap::cend() | cbegin()返回一个常量迭代器,该迭代器引用多重映射容器中的第一个元素。cend()返回一个常量迭代器,该迭代器指向多重映射中最后一个元素后面的理论元素。 |
多重映射::交换() | 将一个多重映射的内容与另一个类型和大小相同的多重映射交换。 |
多重映射rbegin | 返回指向容器最后一个元素的迭代器。 |
多重映射大小() | 返回多重映射容器中的元素数。 |
multimap::emplace() | 在多重映射容器中插入键及其元素。 |
multimap::begin()和multimap::end() | begin()返回一个迭代器,该迭代器引用多重映射容器中的第一个元素。end()返回多重映射中最后一个元素后面的理论元素的迭代器。 |
多重映射上界() | 向第一个元素返回迭代器,该元素相当于键值为“g”的多重映射值,或者肯定会在多重映射中紧跟键值为“g”的元素。 |
多重映射::计数() | 返回多重映射中键值为“g”的元素的匹配数。 |
多重映射::擦除() | 从多重贴图中删除键值。 |
multimap::find() | 如果在多重映射中找到键值为“g”的元素,则返回迭代器,否则返回迭代器结束。 |
多重映射等_范围() | 返回成对的迭代器。该对指的是一个范围的边界,该范围包括容器中的所有元素,这些元素的密钥等价于k。 |
多重映射插入() | 用于在多重贴图容器中插入元素。 |
多重映射下界() | 将迭代器返回到第一个元素,该元素相当于键值为“g”的多重映射值,或者肯定不会在多重映射中键值为“g”的元素之前。 |
多重映射键_comp() | 返回确定多重映射中元素排序方式的对象(默认情况下为“ |
如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END