Iterator and Range-Based Algorithms

# How to Reverse the Order of Elements in a Vector Using the C++ Standard Library

## How can I reverse the order of elements in a vector using the C++ standard library?

To reverse the order of elements in a vector using the C++ standard library, you can utilize the std::reverse() algorithm from the <algorithm> header.

This algorithm works with iterators and allows you to reverse the elements of any container that provides iterator access, such as std::vector.

Here’s an example demonstrating how to reverse a vector of integers:

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

int main() {
std::vector<int> numbers {1, 2, 3, 4, 5};

// Reversing the vector
std::reverse(numbers.begin(), numbers.end());

// Printing the reversed vector
for (const int& num : numbers) {
std::cout << num << " ";
}
}
5 4 3 2 1

### How It Works

• Including the Header: You need to include the <algorithm> header to access the std::reverse() function.
• Using Iterators: The std::reverse() function takes two iterators: the beginning and the end of the range you want to reverse. By passing numbers.begin() and numbers.end(), you reverse the entire vector.
• Printing the Vector: After reversing, we print each element in the vector to verify the order has been reversed.

### Practical Uses

Reversing a vector can be useful in various scenarios, such as:

• Displaying elements in reverse order.
• Performing algorithms that require elements in a different sequence.
• Preparing data for certain types of analysis or processing.

• You can also reverse a subrange within the vector by specifying different iterators. For example, to reverse only the middle three elements of a five-element vector, you could use std::reverse(numbers.begin() + 1, numbers.begin() + 4);.
• The std::reverse() algorithm works with any container that supports bidirectional iterators, not just std::vector.

Reversing a vector is a simple yet powerful operation that can be easily achieved using the C++ standard library, making your code more versatile and efficient.

This Question is from the Lesson:

### Iterator and Range-Based Algorithms

An introduction to iterator and range-based algorithms, using examples from the standard library

Answers to questions are automatically generated and may not have been reviewed.

This Question is from the Lesson:

### Iterator and Range-Based Algorithms

An introduction to iterator and range-based algorithms, using examples from the standard library

Part of the course:

## Professional C++

Comprehensive course covering advanced concepts, and how to use them on large-scale projects.

Free, unlimited access

### This course includes:

• 124 Lessons
• 550+ Code Samples
• 96% Positive Reviews
• Regularly Updated
• Help and FAQ
Free, Unlimited Access

### Professional C++

Comprehensive course covering advanced concepts, and how to use them on large-scale projects.