1.介紹
? ? ? ? map是 C++ 標準模板庫(STL)中的一個關聯容器,用于存儲鍵值對(key-value pairs)。map中的元素是按照鍵(key)進行排序的,并且每個鍵在容器中是唯一的。map通常基于紅黑樹(一種自平衡二叉查找樹)實現,因此插入、刪除和查找操作的時間復雜度為 O(log n)。
2.map用法
? ? ? ? (1)定義于初始化
????????????????std::map<KeyType, ValueType> myMap;
????????例如:
std::map<int, std::string> myMap;std::map<int, std::string> myMap = {{1, "apple"},{2, "banana"},{3, "cherry"}
};
? ? ? ? (2)插入元素
myMap.insert(std::make_pair(4, "date"));
myMap[5] = "elderberry";
? ? ? ? (3)訪問元素
std::string fruit = myMap[1]; // 訪問鍵為 1 的值
std::string fruit2 = myMap.at(2); // 訪問鍵為 2 的值
? ? ? ? (4)刪除元素
myMap.erase(3); // 刪除鍵為 3 的元素
? ? ? ? (5)查找元素
auto it = myMap.find(2);
if (it != myMap.end()) {std::cout << "Found: " << it->second << std::endl;
} else {std::cout << "Not found" << std::endl;
}
? ? ? ? (6)遍歷元素
//迭代器
for (auto it = myMap.begin(); it != myMap.end(); ++it) {std::cout << it->first << ": " << it->second << std::endl;
}//范圍for循環
for (const auto& pair : myMap) {std::cout << pair.first << ": " << pair.second << std::endl;
}
? ? ? ? (7)其他常用操作????????
-
size()
:返回?map
?中元素的數量。 -
empty()
:檢查?map
?是否為空。 -
clear()
:清空?map
?中的所有元素。
3.總結
? ? ? ? map是一個非常有用的容器,適用于需要根據鍵快速查找、插入和刪除元素的場景。由于它是有序的,因此在需要按順序處理鍵值對時也非常方便。
如有錯誤,敬請指正!!!