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++ 中非常重要的容器类,它们提供了高效的键值对存储和集合操作功能。这些容器类支持插入、删除和查找操作,并且广泛应用于各种场景。通过理解这些容器类的基本使用和高级特性,开发者可以更好地利用它们来解决实际问题。