C++ STL map 详解:插入、遍历和键值对操作
C++ STL map 详解:插入、遍历和键值对操作
本示例展示如何使用 C++ STL 的 map 容器来存储和操作键值对,包括插入、遍历和输出等操作。
#include <iostream>
#include <vector>
#include <stack>
#include <queue>
#include <list>
#include <map>
#include <algorithm>
using namespace std;
/*
template<typename T1, typename T2>
struct pair
{
T1 first;
T2 second;
};
*/
int main()
{ // map<key_t, value_t>
map<string, int> mp;
mp["one"] = 1;
// mp["one"] = 2;
mp.insert(make_pair("one", 2));
mp.insert(make_pair("two", 20));
mp.insert(pair<string, int>("three", 3));
mp.insert(map<string, int>::value_type("four", 4));
/* map<string, int>::iterator it;
for(it = mp.begin(); it != mp.end(); it++) {
cout << "key " << it->first << " value " << it->second << endl;
}
*/
/*
for(const auto &pr : mp) {
cout << "key " << pr.first << " value " << pr.second << endl;
}*/
for(const auto &[key, value] : mp) {
cout << "key " << key << " value " << value << endl;
}
return 0;
}
代码解释:
- 第 1 行代码包含了
iostream库的头文件,用于输入输出操作。 - 第 2 行代码包含了
vector库的头文件,用于定义和操作动态数组。 - 第 3 行代码包含了
stack库的头文件,用于定义和操作栈数据结构。 - 第 4 行代码包含了
queue库的头文件,用于定义和操作队列数据结构。 - 第 5 行代码包含了
list库的头文件,用于定义和操作链表数据结构。 - 第 6 行代码包含了
map库的头文件,用于定义和操作键值对数据结构。 - 第 8 行代码使用了命名空间
std,表示使用标准库的函数和类。 - 第 11 行代码定义了一个
map对象mp,键的类型为string,值的类型为int。 - 第 13 行代码将键为
"one"的值设置为1。 - 第 15 行代码将键为
"one"的值设置为2,覆盖了之前的值。 - 第 17 行代码使用
insert函数将键为"one",值为2的键值对插入到map中。 - 第 18 行代码使用
insert函数将键为"two",值为20的键值对插入到map中。 - 第 19 行代码使用
insert函数将键为"three",值为3的键值对插入到map中。 - 第 20 行代码使用
insert函数将键为"four",值为4的键值对插入到map中。 - 第 23 行代码使用迭代器遍历
map中的每个键值对,并输出键和值。 - 第 29 行代码使用范围
for循环遍历map中的每个键值对,并输出键和值。 - 第 33 行代码使用结构化绑定和范围
for循环遍历map中的每个键值对,并输出键和值。 - 第 35 行代码表示程序执行成功,返回
0。
本示例展示了使用 map 容器的几种基本操作,包括插入、遍历和输出。你可以根据自己的需求对 map 容器进行更深入的探索和学习。
原文地址: https://www.cveoy.top/t/topic/quzr 著作权归作者所有。请勿转载和采集!