Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::erase_if(std::unordered_set)

      From cppreference.com
      <cpp‎ |container‎ |unordered set

      [edit template]
       
       
       
      std::unordered_set
      Member types
      Member functions
      Non-member functions
      erase_if(std::unordered_set)
      (C++20)
      Deduction guides(C++17)
       
      Defined in header<unordered_set>
      template<class Key,class Hash,class KeyEqual,class Alloc,

               class Pred>
      std::unordered_set<Key, Hash, KeyEqual, Alloc>::size_type
          erase_if(std::unordered_set<Key, Hash, KeyEqual, 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 <unordered_set> void println(auto rem,constauto& container){std::cout<< rem<<'{';for(char sep[]{0,' ',0};constauto& item: container)std::cout<< sep<< item,*sep=',';std::cout<<"}\n";} int main(){std::unordered_set data{3,3,4,5,5,6,6,7,2,1,0};    println("Original:\n", data); auto divisible_by_3=[](constauto& x){return(x%3)==0;}; constauto count=std::erase_if(data, divisible_by_3);     println("Erase all items divisible by 3:\n", data);std::cout<< count<<" items erased.\n";}

      Possible output:

      Original:{0, 1, 2, 7, 6, 5, 4, 3}Erase all items divisible by 3:{1, 2, 7, 5, 4}3 items erased.

      [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/unordered_set/erase_if&oldid=135883"

      [8]ページ先頭

      ©2009-2025 Movatter.jp