標準マップの 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 中国語 Web サイトの他の関連記事を参照してください。