std::map是C++ STL庫的一種關(guān)聯(lián)式容器,它存儲鍵值對,允許通過鍵來訪問值。下面介紹兩種方法,用于刪除std::map中的鍵值對。
erase()方法
erase()方法可以刪除std::map中的鍵值對,可以傳遞std::map::iterator作為參數(shù),刪除指定的鍵值對。也可以傳遞鍵作為參數(shù),從std::map中刪除具有該鍵的鍵值對。
刪除指定的鍵值對:
#include <iostream>
#include <map>
int main()
{
std::map<int, int> myMap{
{1, 100},
{2, 200},
{3, 300}
};
auto it = myMap.find(2);
if (it != myMap.end())
{
myMap.erase(it);
}
for (auto& x : myMap)
{
std::cout << x.first << ": " << x.second << std::endl;
}
return 0;
}
輸出:
1: 100
3: 300
刪除具有指定鍵的鍵值對:
#include <iostream>
#include <map>
int main()
{
std::map<std::string, int> myMap{
{"one", 1},
{"two", 2},
{"three", 3}
};
myMap.erase("two");
for (auto& x : myMap)
{
std::cout << x.first << ": " << x.second << std::endl;
}
return 0;
}
輸出:
one: 1
three: 3
clear()方法
clear()方法可以清空整個std::map容器,即刪除所有鍵值對。
#include <iostream>
#include <map>
int main()
{
std::map<int, int> myMap{
{1, 100},
{2, 200},
{3, 300}
};
myMap.clear();
std::cout << "Size of the map after clear(): " << myMap.size() << std::endl;
return 0;
}
輸出:
Size of the map after clear(): 0
上述方法可以幫助您在C++ STL map容器中刪除鍵值對。