remove (STL Samples)
Viene illustrato come utilizzare la funzione standard (STL) della libreria di modelli rimuovere in Visual C++.
template<class ForwardIterator, class Type> inline
ForwardIterator remove(
ForwardIterator First,
ForwardIterator Last,
const T& Value
)
Note
[!NOTA]
La classe/nomi di parametro nel prototipo non corrisponde alla versione nel file di intestazione.Alcuni sono stati modificati per migliorare la leggibilità.
L'algoritmo remove elimina tutti gli elementi che corrispondono al valore dell'intervallo (First, Last).Restituisce un iteratore uguale a Last - n, dove n è il numero di elementi hanno comportato.Gli ultimi n elementi dell' intervallo di valori validi ma non specificati.La dimensione del contenitore rimane la stessa.
Esempio
// remove.cpp
// compile with: /EHsc
// Illustrates how to use the remove function.
//
// Functions:
// remove - remove all elements from the sequence that match value.
// begin - Returns an iterator that points to the first element in a
// sequence.
// end - Returns an iterator that points one past the end of a sequence.
//////////////////////////////////////////////////////////////////////
// disable warning C4786: symbol greater than 255 character,
// okay to ignore
#pragma warning(disable: 4786)
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;
int main()
{
const int VECTOR_SIZE = 8 ;
// Define a template class vector of integers
typedef vector<int > IntVector ;
//Define an iterator for template class vector of integer
typedef IntVector::iterator IntVectorIt ;
IntVector Numbers(VECTOR_SIZE) ; //vector containing numbers
IntVectorIt start, end, it, last;
start = Numbers.begin() ; // location of first
// element of Numbers
end = Numbers.end() ; // one past the location
// last element of Numbers
//Initialize vector Numbers
Numbers[0] = 10 ;
Numbers[1] = 20 ;
Numbers[2] = 10 ;
Numbers[3] = 15 ;
Numbers[4] = 12 ;
Numbers[5] = 7 ;
Numbers[6] = 9 ;
Numbers[7] = 10 ;
cout << "Before calling remove" << endl ;
// print content of Numbers
cout << "Numbers { " ;
for(it = start; it != end; it++)
cout << *it << " " ;
cout << " }\n" << endl ;
// remove all elements from Numbers that match 10
last = remove(start, end, 10) ;
cout << "After calling remove" << endl ;
// print content of Numbers
cout << "Numbers { " ;
for(it = start; it != end; it++)
cout << *it << " " ;
cout << " }\n" << endl ;
//print number of elements removed from Numbers
cout << "Total number of elements removed from Numbers = "
<< end - last << endl ;
//print only the valid elements of Number
cout << "Valid elements of Numbers { " ;
for(it = start; it != last; it++)
cout << *it << " " ;
cout << " }\n" << endl ;
}
Output
Before calling remove
Numbers { 10 20 10 15 12 7 9 10 }
After calling remove
Numbers { 20 15 12 7 9 7 9 10 }
Total number of elements removed from Numbers = 3
Valid elements of Numbers { 20 15 12 7 9 }
Requisiti
Header: <algorithm>