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
Reverse copy algorithm reverses the order of the elements in the range [first, last)
Reverse copy algorithm reverses the order of the elements in the range [first, last) reverse_copy Header <algorithm> template<class BidirectionalIterator, class OutputIterator> inline OutputIterator reverse_copy(BidirectionalIterator first, BidirectionalIterator last, OutputIterator result) The reverse_copy algorithm reverses the order of the elements in the range [first, last) and copies the result into a sequence of the same size starting at result. It returns an iterator positioned immediately after the last new element in the resulting sequence. Sample // disable warning C4786: symbol greater than 255 character, // okay to ignore #pragma warning(disable: 4786) #include <iostream> #include <vector> #include <string> #include <algorithm> #include <functional> using namespace std ; void main() { const int VECTOR_SIZE = 8 ; // Define a template class vector of strings typedef vector<string> StrVector ; //Define an iterator for template class vector of strings typedef StrVector::iterator StrVectorIt ; StrVector Tongue_Twister(VECTOR_SIZE) ; StrVector Reversed_Twister(VECTOR_SIZE) ; StrVectorIt start, end, it, RTstart, RTend ; start = Tongue_Twister.begin() ; // location of first // element of Tongue_Twister end = Tongue_Twister.end() ; // one past the location last // element of Tongue_Twister RTstart = Reversed_Twister.begin() ; // location of first // element of Reversed_Twister RTend = Reversed_Twister.end() ; // one past the location last // element of Reversed_Twister //Initialize vector Tongue_Twister Tongue_Twister[0] = "she" ; Tongue_Twister[1] = "sells" ; Tongue_Twister[2] = "sea" ; Tongue_Twister[3] = "shells" ; Tongue_Twister[4] = "by"; Tongue_Twister[5] = "the"; Tongue_Twister[6] = "sea" ; Tongue_Twister[7] = "shore" ; cout << "Before calling reverse_copy \n" << endl ; // print content of Tongue_Twister cout << "Try this Tongue Twister: " ; for(it = start; it != end; it++) cout << *it << " " ; cout << "\n\n" ; // reverse the items in the vector Tongue_Twister // and copy the results to Reversed_Twister reverse_copy(start, end, RTstart) ; cout << "After calling reverse_copy: \n" << endl ; // print content of Tongue_Twister cout << "Tongue_Twister: " ; for(it = start; it != end; it++) cout << *it << " " ; cout << "\n\n" ; // print content of Reversed_Twister cout << "Now try the reversed Tongue Twister: " ; for(it = RTstart; it != RTend; it++) cout << *it << " " ; cout << "\n\n" ; } Program Output Before calling reverse_copy Try this Tongue Twister: she sells sea shells by the sea shore After calling reverse_copy: Tongue_Twister: she sells sea shells by the sea shore Now try the reversed Tongue Twister: shore sea the by shells sea sells she
Privacy Policy
|
Link to Us
|
Links