GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
* Sign Up! *

Support
Customer Portal
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::erase_if(std::multimap)(3) C++ Standard Libary std::erase_if(std::multimap)(3)

std::erase_if(std::multimap) - std::erase_if(std::multimap)


Defined in header <map>
template< class Key, class T, class Compare, class Alloc,


class Pred >
std::multimap<Key, T, Compare, Alloc>::size_type (since C++20)
erase_if( std::multimap<Key, T, Compare, Alloc>& c,


Pred pred );


Erases all elements that satisfy the predicate pred from c.


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();


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


The number of erased elements.


Linear.

// Run this code


#include <iostream>
#include <map>


void println(auto rem, auto const& container)
{
std::cout << rem << '{';
for (char sep[]{0, ' ', 0}; const auto& [key, value] : container)
std::cout << sep << '{' << key << ", " << value << '}', *sep = ',';
std::cout << "}\n";
}


int main()
{
std::multimap<int, char> data
{
{1, 'a'}, {2, 'b'}, {3, 'c'}, {4, 'd'},
{5, 'e'}, {4, 'f'}, {5, 'g'}, {5, 'g'},
};
println("Original:\n", data);


const auto count = std::erase_if(data, [](const auto& item)
{
auto const& [key, value] = item;
return (key & 1) == 1;
});


println("Erase items with odd keys:\n", data);
std::cout << count << " items removed.\n";
}


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


remove removes elements satisfying specific criteria
remove_if (function template)

2024.06.10 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.