相当于标准映射的Remove-If
问题:
在 C 中,如何我可以使用 STL 根据指定条件从地图中删除一系列元素吗算法?
答案:
虽然remove_if算法不适用于地图等关联容器,但存在使用迭代器的等效方法。具体操作方法如下:
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; } } }
说明:
以上是如何根据条件从 C 标准映射中删除元素?的详细内容。更多信息请关注PHP中文网其他相关文章!