c++中map erase的用法是什么

c++
小億
273
2024-03-04 14:56:37

在C++中,std::map 是一個(gè)關(guān)聯(lián)容器,它包含一組鍵-值對(duì),其中鍵和值之間存在映射關(guān)系。erase() 函數(shù)用于從std::map中刪除指定的元素。

erase()函數(shù)有多種重載形式,其最常用的形式是刪除指定鍵對(duì)應(yīng)的元素。示例如下:

std::map<int, std::string> myMap = {{1, "apple"}, {2, "banana"}, {3, "cherry"}};

// 刪除鍵為2的元素
myMap.erase(2);

除了刪除單個(gè)元素外,erase()函數(shù)還可以接受迭代器作為參數(shù),用于刪除指定位置的元素。示例如下:

std::map<int, std::string> myMap = {{1, "apple"}, {2, "banana"}, {3, "cherry"}};

// 刪除第一個(gè)元素
auto it = myMap.begin();
myMap.erase(it);

值得注意的是,erase()函數(shù)返回一個(gè)指向已刪除元素之后位置的迭代器,可以用來進(jìn)一步操作。如果需要?jiǎng)h除一定范圍內(nèi)的元素,可以使用兩個(gè)迭代器指定范圍。示例如下:

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()函數(shù)在std::map中用于刪除元素,可以根據(jù)鍵或迭代器刪除單個(gè)或一定范圍的元素。

0