C++标准模板库中的映射(STL)

地图是 关联容器 以映射的方式存储元素。每个元素都有一个键值和一个映射值。没有两个映射值可以具有相同的键值。

null

与地图相关的一些基本功能:

实施:

CPP

// CPP Program to demonstrate the implementation in Map
#include <iostream>
#include <iterator>
#include <map>
using namespace std;
int main()
{
// empty map container
map< int , int > gquiz1;
// 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 >(4, 20));
gquiz1.insert(pair< int , int >(5, 50));
gquiz1.insert(pair< int , int >(6, 50));
gquiz1.insert(pair< int , int >(7, 10));
// printing map gquiz1
map< int , int >::iterator itr;
cout << "The map gquiz1 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
map< int , int > gquiz2(gquiz1.begin(), gquiz1.end());
// print all elements of the map gquiz2
cout << "The map 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
// element with key=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 map 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 map gquiz1 is :     KEY    ELEMENT    1    40    2    30    3    60    4    20    5    50    6    50    7    10The map gquiz2 after assign from gquiz1 is :     KEY    ELEMENT    1    40    2    30    3    60    4    20    5    50    6    50    7    10gquiz2 after removal of elements less than key=3 :     KEY    ELEMENT    3    60    4    20    5    50    6    50    7    10gquiz2.erase(4) : 1 removed     KEY    ELEMENT    3    60    5    50    6    50    7    10gquiz1.lower_bound(5) :     KEY = 5        ELEMENT = 50gquiz1.upper_bound(5) :     KEY = 6        ELEMENT = 50

地图的所有功能列表

作用 释义
地图::插入() 在映射容器中插入具有特定键的元素。
map::count() 返回映射中键值为“g”的元素的匹配数。
映射相等_范围() 返回成对的迭代器。该对指的是一个范围的边界,该范围包括容器中的所有元素,这些元素的密钥等价于k。
映射擦除() 用于从容器中删除元素。
地图格式() 返回一个反向迭代器,该迭代器指向映射中第一个键值对(被视为其反向端)正前方的理论元素。
映射rbegin() 返回指向映射的最后一个元素的反向迭代器。
地图查找() 如果在映射中找到键值为“g”的元素,则返回迭代器,否则返回迭代器结束。
映射crbegin()和crend() crbegin()返回一个常量反向迭代器,该迭代器引用映射容器中的最后一个元素。crend()返回一个常量反向迭代器,该迭代器指向映射中第一个元素之前的理论元素。
映射cbegin()和cend() cbegin()返回一个常量迭代器,该迭代器引用映射容器中的第一个元素。cend()返回一个常量迭代器,该迭代器指向多重映射中最后一个元素后面的理论元素。
地图安放() 在映射容器中插入键及其元素。
地图最大尺寸() 返回贴图容器可以容纳的最大元素数。
映射上界() 向第一个元素返回迭代器,该元素相当于键值为“g”的映射值,或者肯定会在映射中紧跟键值为“g”的元素
地图操作员= 将容器的内容指定给其他容器,替换其当前内容。
映射下界() 将迭代器返回到第一个元素,该元素相当于键值为“g”的映射值,或者肯定不会在映射中键值为“g”的元素之前。
地图放置提示() 在映射容器中插入键及其元素,并给出提示。
映射值_comp() 返回确定映射中元素排序方式的对象(默认情况下为“
地图键_comp() 返回确定映射中元素排序方式的对象(默认情况下为“
地图::大小() 返回映射中的元素数。
map::empty() 返回映射是否为空
映射::begin()和end() begin()返回映射中第一个元素的迭代器。end()将迭代器返回到映射中最后一个元素后面的理论元素
map::operator[] 该操作符用于引用操作符内部给定位置处的元素。
map::clear() 从地图中删除所有元素。
映射::at()和映射::swap() at()函数用于返回对与键k关联的元素的引用。swap()函数用于交换两个映射的内容,但映射必须是相同的类型,尽管大小可能不同。

最近关于地图的文章

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享