Freigeben über


remove (STL Samples)

Veranschaulicht, wie die - Funktion Entfernen Standardvorlagenbibliothek (STL) in Visual C++ verwenden.

template<class ForwardIterator, class Type> inline
   ForwardIterator remove(
      ForwardIterator First,
      ForwardIterator Last,
      const T& Value
   )

Hinweise

HinweisHinweis

Die Klasse/die Parameternamen im Prototyp stimmen nicht die Version in der Headerdatei ab.Einige wurden geändert, um die Lesbarkeit zu verbessern.

Der remove Algorithmus werden alle Elemente, die Abgleichungswert im Bereich (First, Last).Es wird ein Iterator gleich Last zurück - n, wobei n = Anzahl Elemente sich entfernt haben.Die Elemente des letzten n des Bereichs haben die gültigen jedoch nicht angegebenen Werte.Die Größe des Containers bleibt gleich.

Beispiel

// 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  }

Anforderungen

Header: <algorithm>

Siehe auch

Konzepte

Standardvorlagenbibliotheks-Beispiele