remove
Odstraní zadanou hodnotu z daného rozsahu bez narušení pořadí zbývajících prvků a vrácení konce nového rozsahu, který neobsahuje zadanou hodnotu.
template<class ForwardIterator, class Type> ForwardIterator remove( ForwardIterator _First, ForwardIterator _Last, const Type& _Val );
Parametry
_First
Iterační dopředu, pomocí adresování pozice prvním elementem v rozsahu, ze kterého budou odebrány elementy._Last
Iterační dopředu, pomocí adresování jednu pozici za poslední prvek v rozsahu, ze kterého budou odebrány elementy._Val
Hodnota, která má být odebrán z rozsahu.
Vrácená hodnota
Iterační dopředu, pomocí adresování nové pozice konce upravené rozsahu, jeden za poslední prvek volné zadané hodnoty zbývajících pořadí.
Poznámky
Rozsah odkazuje musí být platná. všechny ukazatele musí být dereferenceable a v rámci sekvenci je dostupný od prvního poslední pozice podle incrementation.
Zůstane stabilní pořadí elementů nelze odebrat.
operator== Slouží k určení rovnosti mezi elementy musí ukládat vztahu rovnocennosti mezí jejími operandy.
Složitost je lineární; Existují (_Last – _First) porovnání rovnosti.
Seznam třída obsahuje efektivnější verze funkce člena z odebrat, což také relinks ukazatele.
Příklad
// alg_remove.cpp
// compile with: /EHsc
#include <vector>
#include <algorithm>
#include <iostream>
int main( ) {
using namespace std;
vector <int> v1;
vector <int>::iterator Iter1, Iter2, new_end;
int i;
for ( i = 0 ; i <= 9 ; i++ )
v1.push_back( i );
int ii;
for ( ii = 0 ; ii <= 3 ; ii++ )
v1.push_back( 7 );
random_shuffle ( v1.begin( ), v1.end( ) );
cout << "Vector v1 is ( " ;
for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
cout << *Iter1 << " ";
cout << ")." << endl;
// Remove elements with a value of 7
new_end = remove ( v1.begin( ), v1.end( ), 7 );
cout << "Vector v1 with value 7 removed is ( " ;
for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
cout << *Iter1 << " ";
cout << ")." << endl;
// To change the sequence size, use erase
v1.erase (new_end, v1.end( ) );
cout << "Vector v1 resized with value 7 removed is ( " ;
for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
cout << *Iter1 << " ";
cout << ")." << endl;
}
Vzorový výstup
Vector v1 is ( 7 1 9 2 0 7 7 3 4 6 8 5 7 7 ).
Vector v1 with value 7 removed is ( 1 9 2 0 3 4 6 8 5 6 8 5 7 7 ).
Vector v1 resized with value 7 removed is ( 1 9 2 0 3 4 6 8 5 ).
Požadavky
Záhlaví: < algoritmus >
Obor názvů: std