在C++中,使用std::map
的erase
函數可以刪除一個或多個元素,但是只能傳入一個迭代器或鍵值作為參數。如果要一次刪除多個元素,可以使用循環遍歷要刪除的元素,然后使用erase
函數逐個刪除。
例如,以下是一種刪除多個元素的方法:
#include <iostream>
#include <map>
int main() {
std::map<int, std::string> myMap = {{1, "apple"}, {2, "banana"}, {3, "cherry"}, {4, "date"}};
std::set<int> keysToDelete = {2, 3};
for (auto it = keysToDelete.begin(); it != keysToDelete.end(); ++it) {
myMap.erase(*it);
}
for (auto& pair : myMap) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
在上述示例中,我們首先創建了一個std::map
對象myMap
,然后使用std::set
對象keysToDelete
來存儲要刪除的鍵值。接著,在循環中,我們遍歷keysToDelete
中的鍵值,然后使用erase
函數逐個刪除對應的元素。最后,我們輸出剩余的元素。