C++进阶:map和set
发布人:shili8
发布时间:2024-12-29 20:06
阅读次数:0
**C++进阶:map和set**
在 C++ 中,`map` 和 `set` 是两个非常重要的容器类,它们提供了高效的键值对存储和集合操作功能。这些容器类是 C++ 标准库中的一部分,并且广泛应用于各种场景。
**1. map**
`map` 是一个关联容器,用于存储键值对。每个键都与一个特定的值相关联。`map` 支持高效的插入、删除和查找操作。
###1.1 map 的基本使用
cpp#include <iostream>
#include <map>
int main() {
// 创建一个空map std::map<std::string, int> myMap;
// 插入一些键值对 myMap["apple"] =5;
myMap["banana"] =10;
myMap["orange"] =7;
// 输出所有键值对 for (const auto& pair : myMap) {
std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl;
}
return0;
}
###1.2 map 的查找和插入
cpp#include <iostream>
#include <map>
int main() {
// 创建一个空map std::map<std::string, int> myMap;
// 插入一些键值对 myMap["apple"] =5;
myMap["banana"] =10;
myMap["orange"] =7;
// 查找一个键的值 auto it = myMap.find("apple");
if (it != myMap.end()) {
std::cout << "Found key 'apple' with value: " << it->second << std::endl;
} else {
std::cout << "Key 'apple' not found." << std::endl;
}
// 插入一个新的键值对 myMap["grape"] =3;
return0;
}
###1.3 map 的删除
cpp#include <iostream>
#include <map>
int main() {
// 创建一个空map std::map<std::string, int> myMap;
// 插入一些键值对 myMap["apple"] =5;
myMap["banana"] =10;
myMap["orange"] =7;
// 删除一个键的值 auto it = myMap.find("banana");
if (it != myMap.end()) {
myMap.erase(it);
std::cout << "Deleted key 'banana'." << std::endl;
} else {
std::cout << "Key 'banana' not found." << std::endl;
}
return0;
}
**2. set**
`set` 是一个集合容器,用于存储唯一的元素。`set` 支持高效的插入、删除和查找操作。
###2.1 set 的基本使用
cpp#include <iostream>
#include <set>
int main() {
// 创建一个空set std::set<int> mySet;
// 插入一些元素 mySet.insert(5);
mySet.insert(10);
mySet.insert(7);
// 输出所有元素 for (const auto& element : mySet) {
std::cout << "Element: " << element << std::endl;
}
return0;
}
###2.2 set 的查找和插入
cpp#include <iostream>
#include <set>
int main() {
// 创建一个空set std::set<int> mySet;
// 插入一些元素 mySet.insert(5);
mySet.insert(10);
mySet.insert(7);
// 查找一个元素 auto it = mySet.find(10);
if (it != mySet.end()) {
std::cout << "Found element10." << std::endl;
} else {
std::cout << "Element10 not found." << std::endl;
}
// 插入一个新的元素 mySet.insert(3);
return0;
}
###2.3 set 的删除
cpp#include <iostream>
#include <set>
int main() {
// 创建一个空set std::set<int> mySet;
// 插入一些元素 mySet.insert(5);
mySet.insert(10);
mySet.insert(7);
// 删除一个元素 auto it = mySet.find(10);
if (it != mySet.end()) {
mySet.erase(it);
std::cout << "Deleted element10." << std::endl;
} else {
std::cout << "Element10 not found." << std::endl;
}
return0;
}
**总结**
`map` 和 `set` 是 C++ 中非常重要的容器类,它们提供了高效的键值对存储和集合操作功能。这些容器类支持插入、删除和查找操作,并且广泛应用于各种场景。通过理解这些容器类的基本使用和高级特性,开发者可以更好地利用它们来解决实际问题。

