std::vector::resize() vs. std::vector::reserve() in C++


Vectors have the ability to resize itself automatically like dynamic arrays when an element is inserted or deleted, the container handle their storage automatically.

The main difference between vector resize() and vector reserve() is that resize() is used to change the size of vector where reserve() doesn’t. reserve() is only used to store at least the number of the specified elements without having to reallocate memory. But in resize() if the number is smaller than the current number then it resizes the memory and deletes the excess space over it.

vector::resize()

Vector resize() is used to change its size.

Example

Steps in the source code:

Begin
   Declare a variable v of vector type.
   Declare another variable it as iterator of vector type.
   Declare another two variable c and i to the ineger datatype.
   while (TRUE) do
      print “1.Size of the Vector”.
      print “2.Insert Element into the Vector”.
      print “3.Resize the vector”.
      print “4.Display by Iterator”.
      print “5.Exit”.
      print “Enter your Choice:”.
      Enter the value of variable c.
      Switch(c)
         Case 1.
            Print “Size of Vector:”.
            Call size() function to print the size of the vector.
            Break.
         Case 2.
            Print “Enter value to be inserted:”.
            Enter the value of variable i.
            Call push_back() function to input the values in the vector.
            Break.
         Case 3.
            Print “Resize the vector elements:”.
            Call resize() function to resize the vector.
            Break.
         Case 4.
           Print “Displaying Vector by Iterator:”.
            for (it = v.begin(); it != v.end(); it++)
               print the value of iterator it.
            Break.
         case 5.
            call exit() function to take exit.
            break.
         Default.
            Print “Wrong choice”.
End.

Example

#include <iostream>
#include <vector>
using namespace std;
int main() {
   vector<int> v;
   vector<int>::iterator it;
   int c, i;
   while (1) {
      cout<<"1.Size of the Vector"<<endl;
      cout<<"2.Insert Element into the Vector"<<endl;
      cout<<"3.Resize the vector"<<endl;
      cout<<"4.Display by Iterator"<<endl;
      cout<<"5.Exit"<<endl;
      cout<<"Enter your Choice: ";
      cin>>c;
      switch(c) {
         case 1:
            cout<<"Size of Vector: ";
            cout<<v.size()<<endl; //printing the size of the vector
            break;
         case 2:
            cout<<"Enter value to be inserted: ";
            cin>>i;
            v.push_back(i); //inserting values
            break;
         case 3:
            cout<<"Resize the vector elements:"<<endl;
            v.resize(4); //resize the vector
            break;
         case 4:
            cout<<"Displaying Vector by Iterator: ";
            for (it = v.begin(); it != v.end(); it++) //printing all values of the vector {
               cout<<*it<<" ";
            }
            cout<<endl;
            break;
         case 5:
            exit(1);
            break;
         default:
            cout<<"Wrong Choice"<<endl;
      }
   }
   return 0;
}

Output

1.Size of the Vector
2.Insert Element into the Vector
3.Resize the vector
4.Display by Iterator
5.Exit
Enter your Choice: 1
Size of Vector: 0
1.Size of the Vector
2.Insert Element into the Vector
3.Resize the vector
4.Display by Iterator
5.Exit
Enter your Choice: 2
Enter value to be inserted: 1
1.Size of the Vector
2.Insert Element into the Vector
3.Resize the vector
4.Display by Iterator
5.Exit
Enter your Choice: 2
Enter value to be inserted: 2
1.Size of the Vector
2.Insert Element into the Vector
3.Resize the vector
4.Display by Iterator
5.Exit
Enter your Choice: 2
Enter value to be inserted: 4
1.Size of the Vector
2.Insert Element into the Vector
3.Resize the vector
4.Display by Iterator
5.Exit
Enter your Choice: 2
Enter value to be inserted: 5
1.Size of the Vector
2.Insert Element into the Vector
3.Resize the vector
4.Display by Iterator
5.Exit
Enter your Choice: 2
Enter value to be inserted: 5
1.Size of the Vector
2.Insert Element into the Vector
3.Resize the vector
4.Display by Iterator
5.Exit
Enter your Choice: 4
Displaying Vector by Iterator: 1 2 4 5 5
1.Size of the Vector
2.Insert Element into the Vector
3.Resize the vector
4.Display by Iterator
5.Exit
Enter your Choice: 3
Resize the vector elements:
1.Size of the Vector
2.Insert Element into the Vector
3.Resize the vector
4.Display by Iterator
5.Exit
Enter your Choice: 4
Displaying Vector by Iterator: 1 2 4 5
1.Size of the Vector
2.Insert Element into the Vector
3.Resize the vector
4.Display by Iterator
5.Exit
Enter your Choice: 5

vector::reserve()

Vector reserve() indicates that the vector is created such that it can store at least the number of the specified elements without reallocating memory.Steps in the Example

Algorithm

Begin
   Declare a variable v of vector type.
   Declare another variable it as iterator of vector type.
   Declare another two variable c and i to the ineger datatype.
   while (1) do
      print “1.Size of the Vector”.
      print “2.Insert Element into the Vector”.
      print “3.Reserve the vector”.
      print “4.Display by Iterator”.
      print “5.Exit”.
      print “Enter your Choice:”.
      Enter the value of variable c.
      Switch(c)
         Case 1.
            Print “Size of Vector:”.
            Call size() function to print the size of the vector.
            Break.
         Case 2.
            Print “Enter value to be inserted:”.
            Enter the value of variable i.
            Call push_back() function to input the values in the vector.
            Break.
         Case 3.
            Print “Reserve the vector elements:”.
            Call reserve() function to reserve the size of the vector.
               Break.
         Case 4.
            Print “Displaying Vector by Iterator:”.
            for (it = v.begin(); it != v.end(); it++)
               print the value of iterator it.
            Break.
         case 5.
            call exit() function to take exit.
            break.
      Default.
         Print “Wrong choice”.
End.

Example

#include <iostream>
#include <vector>
using namespace std;
int main() {
   vector<int> v;
   vector<int>::iterator it;
   int c, i;
   while (1) {
      cout<<"1.Size of the Vector"<<endl;
      cout<<"2.Insert Element into the Vector"<<endl;
      cout<<"3.Reserve the vector"<<endl;
      cout<<"4.Display by Iterator"<<endl;
      cout<<"5.Exit"<<endl;
      cout<<"Enter your Choice: ";
      cin>>c;
      switch(c) {
         case 1:
            cout<<"Size of Vector: ";
            cout<<v.size()<<endl;
            break;
         case 2:
            cout<<"Enter value to be inserted: ";
            cin>>i;
            v.push_back(i);
            break;
         case 3:
            cout<<"Reserve the vector elements."<<endl;
            v.reserve(100); //reserve the vector elements
            break;
         case 4:
            cout<<"Displaying Vector by Iterator: ";
            for (it = v.begin(); it != v.end(); it++) {
               cout<<*it<<" ";
            }
            cout<<endl;
            break;
         case 5:
            exit(1);
            break;
         default:
            cout<<"Wrong Choice"<<endl;
      }
   }
   return 0;
}

Output


1.Size of the Vector
2.Insert Element into the Vector
3.Reserve the vector
4.Display by Iterator
5.Exit
Enter your Choice: 1
Size of Vector: 0
1.Size of the Vector
2.Insert Element into the Vector
3.Reserve the vector
4.Display by Iterator
5.Exit
Enter your Choice: 2
Enter value to be inserted: 1
1.Size of the Vector
2.Insert Element into the Vector
3.Reserve the vector
4.Display by Iterator
5.Exit
Enter your Choice: 2
Enter value to be inserted: 2
1.Size of the Vector
2.Insert Element into the Vector
3.Reserve the vector
4.Display by Iterator
5.Exit
Enter your Choice: 2
Enter value to be inserted: 3
1.Size of the Vector
2.Insert Element into the Vector
3.Reserve the vector
4.Display by Iterator
5.Exit
Enter your Choice: 2
Enter value to be inserted: 4
1.Size of the Vector
2.Insert Element into the Vector
3.Reserve the vector
4.Display by Iterator
5.Exit
Enter your Choice: 2
Enter value to be inserted: 5
1.Size of the Vector
2.Insert Element into the Vector
3.Reserve the vector
4.Display by Iterator
5.Exit
Enter your Choice: 3
Reserve the vector elements.
1.Size of the Vector
2.Insert Element into the Vector
3.Reserve the vector
4.Display by Iterator
5.Exit
Enter your Choice: 4
Displaying Vector by Iterator: 1 2 3 4 5
1.Size of the Vector
2.Insert Element into the Vector
3.Reserve the vector
4.Display by Iterator
5.Exit
Enter your Choice: 4
Displaying Vector by Iterator: 1 2 3 4 5
1.Size of the Vector
2.Insert Element into the Vector
3.Reserve the vector
4.Display by Iterator
5.Exit

Samual Sam
Samual Sam

Learning faster. Every day.

Updated on: 30-Jul-2019

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements