在C++中,std::map
是一個關聯容器,它包含一組鍵-值對,其中鍵和值之間存在映射關系。erase()
函數用于從std::map
中刪除指定的元素。
erase()
函數有多種重載形式,其最常用的形式是刪除指定鍵對應的元素。示例如下:
std::map<int, std::string> myMap = {{1, "apple"}, {2, "banana"}, {3, "cherry"}};
// 刪除鍵為2的元素
myMap.erase(2);
除了刪除單個元素外,erase()
函數還可以接受迭代器作為參數,用于刪除指定位置的元素。示例如下:
std::map<int, std::string> myMap = {{1, "apple"}, {2, "banana"}, {3, "cherry"}};
// 刪除第一個元素
auto it = myMap.begin();
myMap.erase(it);
值得注意的是,erase()
函數返回一個指向已刪除元素之后位置的迭代器,可以用來進一步操作。如果需要刪除一定范圍內的元素,可以使用兩個迭代器指定范圍。示例如下:
std::map<int, std::string> myMap = {{1, "apple"}, {2, "banana"}, {3, "cherry"}, {4, "date"}, {5, "elderberry"}};
// 刪除鍵大于等于3小于等于4的元素
auto start = myMap.lower_bound(3);
auto end = myMap.upper_bound(4);
myMap.erase(start, end);
總的來說,erase()
函數在std::map
中用于刪除元素,可以根據鍵或迭代器刪除單個或一定范圍的元素。