A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://en.cppreference.com/w/cpp/algorithm/../algorithm/../container/forward_list/remove.html below:

std::forward_list<T,Allocator>::remove, remove_if - cppreference.com

(1)

void remove( const T& value );

(since C++11)
(until C++20)

size_type remove( const T& value );

(since C++20)
(constexpr since C++26) (2)

template< class UnaryPred >
void remove_if( UnaryPred p );

(since C++11)
(until C++20)

template< class UnaryPred >
size_type remove_if( UnaryPred p );

(since C++20)
(constexpr since C++26)

Removes all elements satisfying specific criteria.

1) Removes all elements that are equal to value (using operator==).

2) Removes all elements for which predicate p returns true.

Invalidates only the iterators and references to the removed elements.

[edit] Parameters value - value of the elements to remove p - unary predicate which returns ​true if the element should be removed.

The expression p(v) must be convertible to bool for every argument v of type (possibly const) T, regardless of value category, and must not modify v. Thus, a parameter type of T&is not allowed, nor is T unless for T a move is equivalent to a copy(since C++11). ​

Type requirements -UnaryPred must meet the requirements of Predicate. [edit] Return value

(none)

(until C++20)

The number of elements removed.

(since C++20) [edit] Complexity

Given \(\scriptsize N\)N as std::distance(begin(), end()):

1) Exactly \(\scriptsize N\)N comparisons using operator==.

2) Exactly \(\scriptsize N\)N applications of the predicate p.

[edit] Notes [edit] Example
#include <forward_list>
#include <iostream>
 
int main()
{
    std::forward_list<int> l = {1, 100, 2, 3, 10, 1, 11, -1, 12};
 
    auto count1 = l.remove(1);
    std::cout << count1 << " elements equal to 1 were removed\n";
 
    auto count2 = l.remove_if([](int n){ return n > 10; });
    std::cout << count2 << " elements greater than 10 were removed\n";
 
    std::cout << "Finally, the list contains: ";
    for (int n : l)
        std::cout << n << ' ';
    std::cout << '\n';
}

Output:

2 elements equal to 1 were removed
3 elements greater than 10 were removed
Finally, the list contains: 2 3 10 -1
[edit] See also

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4