映射是关联容器, 以映射方式存储元素。每个元素都有一个键值和一个映射值。任何两个映射值都不能具有相同的键值。
与Map相关的一些基本函数:
begin()
–将迭代器返回到map中的第一个元素
end()
–将迭代器返回到映射图中最后一个元素之后的理论元素
size()
–返回map中的元素数量
max_size()
–返回map可以容纳的最大元素数
empty()
–返回map是否为空
对insert(键值, map值)
–向map添加新元素
remove(重复位置)
–在迭代器指向的位置删除元素
remove(常量g)
–从map中删除键值" g"
clear()
–从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 << "\nThe map gquiz1 is : \n" ;
cout << "\tKEY\tELEMENT\n" ;
for (itr = gquiz1.begin(); itr != gquiz1.end(); ++itr) {
cout << '\t' << itr->first
<< '\t' << itr->second << '\n' ;
}
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 << "\nThe map gquiz2 after"
<< " assign from gquiz1 is : \n" ;
cout << "\tKEY\tELEMENT\n" ;
for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) {
cout << '\t' << itr->first
<< '\t' << itr->second << '\n' ;
}
cout << endl;
// remove all elements up to
// element with key=3 in gquiz2
cout << "\ngquiz2 after removal of"
" elements less than key=3 : \n" ;
cout << "\tKEY\tELEMENT\n" ;
gquiz2.erase(gquiz2.begin(), gquiz2.find(3));
for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) {
cout << '\t' << itr->first
<< '\t' << itr->second << '\n' ;
}
// remove all elements with key = 4
int num;
num = gquiz2.erase(4);
cout << "\ngquiz2.erase(4) : " ;
cout << num << " removed \n" ;
cout << "\tKEY\tELEMENT\n" ;
for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) {
cout << '\t' << itr->first
<< '\t' << itr->second << '\n' ;
}
cout << endl;
// lower bound and upper bound for map gquiz1 key = 5
cout << "gquiz1.lower_bound(5) : "
<< "\tKEY = " ;
cout << gquiz1.lower_bound(5)->first << '\t' ;
cout << "\tELEMENT = "
<< gquiz1.lower_bound(5)->second << endl;
cout << "gquiz1.upper_bound(5) : "
<< "\tKEY = " ;
cout << gquiz1.upper_bound(5)->first << '\t' ;
cout << "\tELEMENT = "
<< 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 10
The map gquiz2 after assign from gquiz1 is :
KEY ELEMENT
1 40
2 30
3 60
4 20
5 50
6 50
7 10
gquiz2 after removal of elements less than key=3 :
KEY ELEMENT
3 60
4 20
5 50
6 50
7 10
gquiz2.erase(4) : 1 removed
KEY ELEMENT
3 60
5 50
6 50
7 10
gquiz1.lower_bound(5) : KEY = 5 ELEMENT = 50
gquiz1.upper_bound(5) : KEY = 6 ELEMENT = 50
Map的所有函数列表:
- C ++ STL中的map insert()–在map容器中插入具有特定键的元素。 。
- C ++ STL中的map count()函数–返回map中键值为" g"的元素的匹配数。
- 在C ++ STL中映射equal_range()–返回成对的迭代器。该对是指范围的边界, 该范围包括容器中所有具有等于k的键的元素。
- C ++ STL中的map delete()函数–用于擦除容器中的元素。
- C ++ STL中的map rend()函数–返回一个反向迭代器, 该迭代器指向映射中第一个键值对之前的理论元素(被认为是其反向端)。
- 在C ++ STL中映射rbegin()函数–返回指向map的最后一个元素的反向迭代器。
- C ++ STL中的map find()函数–在map中找到键值为" g"的元素返回迭代器(如果找到), 否则返回迭代器结束。
- 在C ++ STL中映射crbegin()和crend()函数–crbegin()返回一个常量反向迭代器, 该迭代器引用映射容器中的最后一个元素。crend()返回一个常数反向迭代器, 该迭代器指向理论元素(在映射中的第一个元素之前)。
- 在C ++ STL中映射cbegin()和cend()函数–cbegin()返回引用map容器中第一个元素的常量迭代器。cend()返回一个常量迭代器, 该迭代器指向在多图中最后一个元素之后的理论元素。
- 在C ++ STL中映射emplace()–将键及其元素插入到map容器中。
- 在C ++ STL中映射max_size()–返回map容器可以容纳的最大元素数。
- 在C ++ STL中映射upper_bound()函数–将迭代器返回到等效于键值为" g"的映射值的第一个元素, 或者肯定会在映射中的键值为" g"的元素之后
- C ++ STL中的map operator =–将容器的内容分配给其他容器, 以替换其当前内容。
- 在C ++ STL中映射lower_bound()函数–将迭代器返回到等效于键值为" g"的映射值的第一个元素, 或者绝对不会在map中位于键值为" g"的元素之前。
- 在C ++ STL中映射emplace_hint()函数–将键及其元素插入具有给定提示的map容器中。
- 在C ++ STL中映射value_comp()–返回确定map中元素排序方式的对象(默认为" <")。
- 在C ++ STL中映射key_comp()函数–返回确定map中元素排序方式的对象(默认为" <")。
- C ++ STL中的map :: size()–返回map中的元素数。
- C ++ STL中的map :: empty()–返回映射是否为空。
- C ++ STL中的map :: begin()和end()–开始()将迭代器返回到map中的第一个元素。结束()将迭代器返回到映射图中最后一个元素之后的理论元素
- C ++ STL中的map :: operator []–该运算符用于引用在运算符内部给定位置存在的元素。
- C ++ STL中的map :: clear()–从map上删除所有元素。
- C ++ STL中的map :: at()和map :: swap()–在()函数用于返回对与键k关联的元素的引用。交换()函数用于交换两个map的内容, 但是map的类型必须相同, 尽管大小可能会有所不同。
map上的最新文章
如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请发表评论。
被认为是行业中最受欢迎的技能之一, 我们拥有自己的编码基础C ++ STL通过激烈的问题解决过程来训练和掌握这些概念。