Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::experimental::erase_if(std::map)

      From cppreference.com
      <cpp‎ |experimental

      [edit template]
       
       
       
       
      Merged into ISO C++ The functionality described on this page was merged into the mainline ISO C++ standardas of 11/2018, seestd::erase_if(since C++20)
      Defined in header<experimental/map>
      template<class Key,class T,class Compare,class Alloc,class Pred>
      void erase_if(std::map<Key, T, Compare, Alloc>& c, Pred pred);
      (library fundamentals TS v2)

      Erases all elements that satisfy the predicatepred from the container. Equivalent to

      for(auto i= c.begin(), last= c.end(); i!= last;){if(pred(*i))        i= c.erase(i);else++i;}

      Contents

      [edit]Parameters

      c - container from which to erase
      pred - predicate that determines which elements should be erased

      [edit]Complexity

      Linear.

      [edit]Example

      Run this code
      #include <experimental/map>#include <iostream> template<typename Os,typename Container>inline Os& operator<<(Os& os, Containerconst& cont){    os<<'{';for(constauto& item: cont)        os<<'{'<< item.first<<", "<< item.second<<'}';return os<<'}';} int main(){std::map<int,char> data{{1,'a'},{2,'b'},{3,'c'},{4,'d'},{5,'e'},{4,'f'},{5,'g'},{5,'g'}};std::cout<<"Original:\n"<< data<<'\n';    std::experimental::erase_if(data,[](constauto& item){return(item.first&1)==1;});std::cout<<"Erase items with odd keys:\n"<< data<<'\n';}

      Output:

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

      [edit]See also

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

      [8]ページ先頭

      ©2009-2025 Movatter.jp