Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::erase_if(std::map)

      From cppreference.com
      <cpp‎ |container‎ |map

      [edit template]
       
       
       
      std::map
      Member functions
      Non-member functions
      erase_if(std::map)
      (C++20)  

      (until C++20)(until C++20)(until C++20)(until C++20)(until C++20)
      Deduction guides(C++17)
       
      Defined in header<map>
      template<class Key,class T,class Compare,class Alloc,

               class Pred>
      std::map<Key, T, Compare, Alloc>::size_type
          erase_if(std::map<Key, T, Compare, Alloc>& c,

                    Pred pred);
      (since C++20)
      (constexpr since C++26)

      Erases all elements that satisfy the predicatepred fromc.

      Equivalent to

      auto old_size= c.size();for(auto first= c.begin(), last= c.end(); first!= last;){if(pred(*first))        first= c.erase(first);else++first;}return old_size- c.size();

      Contents

      [edit]Parameters

      c - container from which to erase
      pred - predicate that returnstrue if the element should be erased

      [edit]Return value

      The number of erased elements.

      [edit]Complexity

      Linear.

      [edit]Example

      Run this code
      #include <iostream>#include <map> void println(auto rem,constauto& container){std::cout<< rem<<'{';for(char sep[]{0,' ',0};constauto&[key, value]: container)std::cout<< sep<<'{'<< key<<", "<< value<<'}',*sep=',';std::cout<<"}\n";} int main(){std::map<int,char> data{{1,'a'},{2,'b'},{3,'c'},{4,'d'},{5,'e'},{4,'f'},{5,'g'},{5,'g'},};    println("Original:\n", data); constauto count=std::erase_if(data,[](constauto& item){constauto&[key, value]= item;return(key&1)==1;});     println("Erase items with odd keys:\n", data);std::cout<< count<<" items removed.\n";}

      Output:

      Original:{{1, a}, {2, b}, {3, c}, {4, d}, {5, e}}Erase items with odd keys:{{2, b}, {4, d}}3 items removed.

      [edit]See also

      removes elements satisfying specific criteria
      (function template)[edit]
      removes elements satisfying specific criteria
      (algorithm function object)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/container/map/erase_if&oldid=135253"

      [8]ページ先頭

      ©2009-2025 Movatter.jp