C++ Codes
Algorithms
Algorithm Analysis in C++
Beginners
Code Snippets
Graphics
Data Structures
File Manipulation
Games
Mathematics
Miscellaneous
Visual C++ Library
C++ > Visual C++ 5.0 Standard C++ Library sample source codes
The remove if algorithm removes all elements from the range (first, last) that cause
The remove if algorithm removes all elements from the range (first, last) that cause remove_if Header <algorithm> template<class ForwardIterator, class Predicate> inline ForwardIterator remove_if(ForwardIterator first, ForwardIterator last, Predicate pred) The remove_if algorithm removes all elements from the range (first, last) that cause the predicate to return true. It returns an iterator equal to last - N, where N = number of elements removed. The last N elements of the range have undefined values. The size of the container remains the same. Sample // 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; void 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_if" << endl ; // print content of Numbers cout << "Numbers { " ; for(it = start; it != end; it++) cout << *it << " " ; cout << " }\n" << endl ; // remove all elements from Numbers that <= 10 last = remove_if(start, end, bind2nd(less_equal<int>(), 10) ) ; cout << "After calling remove_if" << 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 ; } Program Output Before calling remove_if Numbers { 10 20 10 15 12 7 9 10 } After calling remove_if Numbers { 20 15 12 15 12 7 9 10 } Total number of elements removed from Numbers = 5 Valid elements of Numbers { 20 15 12 }
Privacy Policy
|
Link to Us
|
Links