相當於標準映射的Remove-If
問題:
問題:在C 中,如何我可以使用STL 根據指定條件從地圖中刪除一系列元素嗎演算法?
答案:bool predicate(const std::pair<int, std::string>& x) { return x.first > 2; } int main() { std::map<int, std::string> aMap; // Populate the map... std::map<int, std::string>::iterator iter = aMap.begin(); std::map<int, std::string>::iterator endIter = aMap.end(); for (; iter != endIter;) { if (predicate(*iter)) { // Here, increment iter after erasing iter = aMap.erase(iter); } else { ++iter; } } }
雖然remove_if演算法不適用於地圖等關聯容器,但存在使用迭代器的等效方法。具體操作方法如下:
以上是如何根據條件從 C 標準映射中刪除元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!