# Iterate vector backwards in C++

In this tutorial, one can get to know how to iterate a vector from backward in C++. There are 3 methods to iterate a vector backward.

In arrays, if we wanted to increase or decrease the size, we must allocate space. But whereas in vectors, it can automatically add or decrease the size. In C++ STL, we have inbuilt iterators for a vector i.e. begin(), end(), rbegin(), rend(). These make our work very easy. Let’s see the 3 methods on how to iterate a vector backward.

## Iterating vector backward

1. By ‘for’ loop:
This method is a basic one where we start from the rightmost element and come to the left element using a for loop.

2. By rbegin() and rend():
In this method, we use inbuilt functions to start reverse begin (rbegin) to reverse end.

3. By reversing the vector and iterating:
In this method, we reverse the whole array and iterate from starting.

#### Let’s see the code

```#include <bits/stdc++.h>
using namespace std;

int main(){

vector<int> arr = {1,2,3,4,5,6,7,8};
int n = arr.size();

// Method 1
cout << "Iterating vector backward using indexing" << endl;
for(int i=n-1; i>=0; i--){
cout << arr[i] << " ";
}

cout << endl;

// Method 2
cout << "\nIterating vector backward using rbegin and rend" << endl;
for (auto it = arr.rbegin(); it != arr.rend(); it++)
cout << *it << " ";

cout << endl;

// Method 3
cout << "\nReversing vector and iterating vector using begin() to end()" << endl;
reverse(arr.begin(), arr.end());
for (auto it = arr.begin(); it != arr.end(); it++)
cout << *it << " ";

return 0;
}```

#### Output

```Iterating vector backward using indexing
8 7 6 5 4 3 2 1

Iterating vector backward using rbegin and rend
8 7 6 5 4 3 2 1

Reversing vector and iterating vector using begin() to end()
8 7 6 5 4 3 2 1```

#### Complexity Analysis

Method 1: Time O(n), Space O(1)
Method 2: Time O(n), Space O(1)
Method 3: Time O(n), Space O(1)