在C++中,std::map是一個關聯容器,用于存儲鍵值對的有序集合。它基于紅黑樹實現,提供了高效的查找、插入和刪除操作。
使用std::map時,需要包含頭文件
std::map<Key, Value> mapName;
其中,Key表示鍵的類型,Value表示值的類型,mapName是map對象的名稱。
可以使用insert()函數向map中插入鍵值對:
mapName.insert(std::pair<Key, Value>(key, value));
也可以使用下標運算符[]來插入鍵值對:
mapName[key] = value;
可以使用find()函數來查找指定鍵的值:
std::map<Key, Value>::iterator it = mapName.find(key);
if (it != mapName.end()) {
// 鍵存在,可以通過it->second訪問對應的值
} else {
// 鍵不存在
}
可以使用erase()函數刪除指定鍵的鍵值對:
mapName.erase(key);
可以使用clear()函數清空map中的所有鍵值對:
mapName.clear();
通過迭代器可以遍歷整個map:
for (std::map<Key, Value>::iterator it = mapName.begin(); it != mapName.end(); ++it) {
// 可以通過it->first訪問鍵,通過it->second訪問值
}
需要注意的是,std::map中的鍵是唯一的,如果插入重復的鍵,則會覆蓋原有的值。如果需要存儲允許重復鍵的鍵值對,可以使用std::multimap。