In this blog post, you will learn what std::reverse() is with the help of a C++ programming example. So let’s first understand std::reverse().
std::reverse() is a built-in function in C++’s Standard Template Library. It is defined in <algorithm> the header file. It reverses the order of the elements in the given range [first, last).
Now I believe you are thinking, why I have written [first, last) ?
Don’t worry I am explaining why I denote the range by two different braces.
The range used is[first, last), which means the range contains all the elements between first and last, including the element pointed by first but not the element pointed by last.
Syntax of reverse():
template< class BidirIt > void reverse( BidirIt first, BidirIt last ); (until C++20) template< class BidirIt > constexpr void reverse( BidirIt first, BidirIt last ); (since C++20)
Parameters:
- first, last – the range of elements to reverse
Note: BidirIt is an iterator that can be used to access any elements of a container in both forward and backward directions.
Example-1: Using std::reverse with a std::vector.
#include <vector>
#include <iostream>
using namespace std;
// algorithm needs to be included to use std::reverse()
#include <algorithm>
using namespace std;
int main()
{
vector<int> values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
cout << "Before reversing: \n";
for(int arr:values)
{
cout<< arr<< ' ';
}
reverse(values.begin(), values.end());
cout << "\n\nAfter reversing: \n";
for(int arr: values)
{
cout << arr << ' ';
}
return 0;
}
Output:
Before reversing: 1 2 3 4 5 6 7 8 9 10 After reversing: 10 9 8 7 6 5 4 3 2 1
Example-2: Using std::reverse with a std::string.
#include <vector>
#include <iostream>
using namespace std;
// algorithm needs to be included to use std::reverse()
#include <algorithm>
using namespace std;
int main()
{
string str = "Aticleworld.com";
cout << "Before reversing: \n";
cout<< str<<endl;
//Use the reverse to reverse string
reverse(str.begin(), str.end());
cout << "\n\nAfter reversing: \n";
cout<< str<<endl;
return 0;
}
Output:
Before reversing: Aticleworld.com After reversing: moc.dlrowelcitA
Example 3: Using std::reverse with a built-in array type.
#include <vector>
#include <iostream>
using namespace std;
// algorithm needs to be included to use std::reverse()
#include <algorithm>
using namespace std;
int main()
{
int values[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
cout << "Before reversing: \n";
for(int arr:values)
{
cout<< arr<< ' ';
}
/*
Array don't has begin() and end() member functions.
so we can pass it to begin() and end() to get the iterators
*/
reverse(begin(values), end(values));
cout << "\n\nAfter reversing: \n";
for(int arr: values)
{
cout << arr << ' ';
}
return 0;
}
Output:
Before reversing: 1 2 3 4 5 6 7 8 9 10 After reversing: 10 9 8 7 6 5 4 3 2 1
Recommended Articles for you:
- C++ Programming Courses And Tutorials
- Operator Overloading in C++ with some FAQ.
- MCQs on Virtual function in C++.
- MCQs on C++ Templates.
- Introduction of reference in C++.
- Use of mutable keywords in C++.
- Best electronic kits for programmers.
- References and const in C++ with example programs.
- C++ Interview Questions with Answers.
- List of some Best C++ Books, you must see.