algorithm - STL C++

reverse_copy()

Declaration

template <class BidirIterator, class OutputIterator>
OutputIterator reverse_copy(
	BidirIterator qFirst,
	BidirIterator qLast,
	OutputIterator qDest
);

Description

This function copies the entries in reverse order from "qFirst" to the one before "qLast" to the location specified by "qDest," writing over the entries. The function returns an iterator that points to the end of the newly copied entries.

Header Include

#include <algorithm>

Example

#include <iostream>
#include <vector>
#include <algorithm>

int main()
{
	using namespace std;

	// Create two vector instances
	vector<char> qV1;
	qV1.push_back('X');
	qV1.push_back('o');
	qV1.push_back('a');
	qV1.push_back('X');
	qV1.push_back('.');
	qV1.push_back('n');
	qV1.push_back('e');
	qV1.push_back('t');

	vector<char> qV2(12, '-');

	vector<char>::iterator qIter;
	// Output the vectors
	cout << "Original V1: ";
	for (qIter = qV1.begin(); qIter != qV1.end(); ++qIter) {
		cout << *qIter;
	}
	cout << endl;

	cout << "Original V2: ";
	for (qIter = qV2.begin(); qIter != qV2.end(); ++qIter) {
		cout << *qIter;
	}
	cout << endl;

	// Reverse copy v1 with the 'X' characters replaced by 'x'
	vector<char>::iterator qEndOfCopyIter;
	qEndOfCopyIter = reverse_copy(qV1.begin(),  qV1.end(), qV2.begin() + 2);

	// Output the result vector
	cout << "Resulting V2: ";
	for (qIter = qV2.begin(); qIter != qV2.end(); ++qIter) {
		cout << *qIter;
	}
	cout << endl;

	// Keep the window open
	cin.get();
	return 0;
}

Output

reverse_copy() Output
 

© 2007–2024 XoaX.net LLC. All rights reserved.