Vector

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 15

C++ Vectors

In C++, vectors are used to store elements of similar data types. However,
unlike arrays, the size of a vector can grow dynamically.
That is, we can change the size of the vector during the execution of a
program as per our requirements.

Vectors are part of the C++ Standard Template Library. To use vectors, we
need to include the vector header file in our program.

#include <vector>

C++ Vector Declaration


Once we include the header file, here's how we can declare a vector in C+
+:

std::vector<T> vector_name;

The type parameter <T> specifies the type of the vector. It can be any
primitive data type such as int , char , float , etc. For example,

vector<int> num;

Here, num is the name of the vector.


Notice that we have not specified the size of the vector during the
declaration. This is because the size of a vector can grow dynamically, so it
is not necessary to define it.
C++ Vector Initialization
There are different ways to initialize a vector in C++.

Method 1:

// Initializer list
vector<int> vector1 = {1, 2, 3, 4, 5};
// Uniform initialization
vector<int> vector2 {1, 2, 3, 4, 5};

Here, we are initializing the vector by providing values directly to the vector.
Now, both vector1 and vector2 are initialized with values 1, 2, 3, 4, 5.
Method 2:

vector<int> vector3(5, 12);

Here, 5 is the size of the vector and 12 is the value.


This code creates an int vector with size 5 and initializes the vector with
the value of 12. So, the vector is equivalent to

vector<int> vector3 = {12, 12, 12, 12, 12};

Example: C++ Vector Initialization


#include <iostream>

#include <vector>

using namespace std;

int main() {
// initializer list

vector<int> vector1 = {1, 2, 3, 4, 5};

// uniform initialization

vector<int> vector2{6, 7, 8, 9, 10};

// method 3

vector<int> vector3(5, 12);

cout << "vector1 = ";

// ranged loop

for (const int& i : vector1) {

cout << i << " ";

cout << "\nvector2 = ";

// ranged loop

for (const int& i : vector2) {

cout << i << " ";

cout << "\nvector3 = ";

// ranged loop
for (int i : vector3) {

cout << i << " ";

return 0;

Output

vector1 = 1 2 3 4 5
vector2 = 6 7 8 9 10
vector3 = 12 12 12 12 12

Here, we have declared and initialized three different vectors using three
different initialization methods and displayed their contents.

Basic Vector Operations


The vector class provides various methods to perform different operations
on vectors. We will look at some commonly used vector operations in this
tutorial:
 Add elements

 Access elements

 Change elements

 Remove elements
1. Add Elements to a Vector
To add a single element into a vector, we use the push_back() function. It
inserts an element into the end of the vector. For example,
#include <iostream>

#include <vector>

using namespace std;

int main() {

vector<int> num {1, 2, 3, 4, 5};

cout << "Initial Vector: ";

for (const int& i : num) {

cout << i << " ";

// add the integers 6 and 7 to the vector

num.push_back(6);

num.push_back(7);

cout << "\nUpdated Vector: ";

for (const int& i : num) {

cout << i << " ";

return 0;
}

Output

Initial Vector: 1 2 3 4 5
Updated Vector: 1 2 3 4 5 6 7

Here, we have initialized an int vector num with the elements {1, 2, 3, 4,

5} . Notice the statements

num.push_back(6);
num.push_back(7);

Here, the push_back() function adds elements 6 and 7 to the vector.

Note: We can also use the insert() and emplace() functions to add
elements to a vector.

2. Access Elements of a Vector


In C++, we use the index number to access the vector elements. Here, we
use the at() function to access the element from the specified index. For
example,
#include <iostream>

#include <vector>

using namespace std;

int main() {

vector<int> num {1, 2, 3, 4, 5};

cout << "Element at Index 0: " << num.at(0) << endl;


cout << "Element at Index 2: " << num.at(2) << endl;

cout << "Element at Index 4: " << num.at(4);

return 0;

Output

Element at Index 0: 1
Element at Index 2: 3
Element at Index 4: 5

Here,

 num.at(0) - access element at index 0


 num.at(2) - access element at index 2
 num.at(4) - access element at index 4
Note: Like an array, we can also use the square brackets [] to access
vector elements. For example,

vector<int> num {1, 2, 3};


cout << num[1]; // Output: 2

However, the at() function is preferred over [] because at() throws an


exception whenever the vector is out of bound, while [] gives a garbage
value.

vector<int> num {1, 2, 3};

// gives garbage value


cout << num[4];

// throws an exception
cout << num.at(4);
3. Change Vector Element
We can change an element of the vector using the same at() function. For
example,
#include <iostream>

#include <vector>

using namespace std;

int main() {

vector<int> num {1, 2, 3, 4, 5};

cout << "Initial Vector: ";

for (const int& i : num) {

cout << i << " ";

// change elements at indexes 1 and 4

num.at(1) = 9;

num.at(4) = 7;

cout << "\nUpdated Vector: ";

for (const int& i : num) {

cout << i << " ";

return 0;
}

Output

Initial Vector: 1 2 3 4 5
Updated Vector: 1 9 3 4 7

In the above example, notice the statements,

num.at(1) = 9;
num.at(4) = 7;

Here, we have assigned new values to indexes 1 and 4. So the value


at index 1 is changed to 9 and the value at index 4 is changed to 7.

4. Delete Elements from C++ Vectors


To delete a single element from a vector, we use the pop_back() function.
For example,
#include <iostream>

#include <vector>

using namespace std;

int main() {

vector<int> prime_numbers{2, 3, 5, 7};

// initial vector

cout << "Initial Vector: ";

for (int i : prime_numbers) {


cout << i << " ";

// remove the last element

prime_numbers.pop_back();

// final vector

cout << "\nUpdated Vector: ";

for (int i : prime_numbers) {

cout << i << " ";

return 0;

Output

Initial Vector: 2 3 5 7
Updated Vector: 2 3 5

In the above example, notice the statement,

prime_numbers.pop_back();

Here, we have removed the last element (7) from the vector.

C++ Vector Functions


In C++, the vector header file provides various functions that can be used
to perform different operations on a vector.

Function Description

size() returns the number of elements present in the vector

clear() removes all the elements of the vector

front() returns the first element of the vector

back() returns the last element of the vector

empty() returns 1 (true) if the vector is empty

capacity() check the overall size of a vector

C++ Vector Iterators


Vector iterators are used to point to the memory address of a vector
element. In some ways, they act like pointers in C++.
We can create vector iterators with the syntax

vector<T>::iterator iteratorName;

For example, if we have 2 vectors of int and double types, then we will
need 2 different iterators corresponding to their types:

// iterator for int vector


vector<int>::iterator iter1;

// iterator for double vector


vector<double>::iterator iter2;

Initialize Vector Iterators

We can initialize vector iterators using the begin() and end() functions.
1. begin() function
The begin() function returns an iterator that points to the first element of the
vector. For example,

vector<int> num = {1, 2, 3};


vector<int>::iterator iter;

// iter points to num[0]


iter = num.begin();

2. end() function
The end() function points to the theoretical element that comes after the
final element of the vector. For example,

// iter points to the last element of num


iter = num.end() - 1;

Here, due to the nature of the end() function, we have used the
code num.end() - 1 to point to the last element of the num vector i.e. num[2] .

Example: C++ Vector Iterators


#include <iostream>

#include <vector>

using namespace std;

int main() {

vector<int> num {1, 2, 3, 4, 5};

// declare iterator

vector<int>::iterator iter;

// initialize the iterator with the first element

iter = num.begin();

// print the vector element

cout << "num[0] = " << *iter << endl;

// iterator points to the 3rd element

iter = num.begin() + 2;

cout << "num[2] = " << *iter;

// iterator points to the last element

iter = num.end() - 1;

cout << "num[4] = " << *iter;

return 0;

Output
num[0] = 1
num[2] = 3
num[4] = 5

In this program, we have declared an int vector iterator iter to use it with
the vector num .

// declare iterator
vector<int>::iterator iter;

Then, we initialized the iterator to the first element of the vector using
the begin() function.

// initialize the iterator with the first element


iter = num.begin();

Then, we printed the vector element by dereferencing the iterator:

// print the vector element


cout << "num[0] = " << *iter << endl;

Then, we printed the 3rd element of the vector by changing the value
of iter to num.begin() + 2 .

Finally, we printed the last element of the vector using the end() function.

Example: Iterate Through Vector Using Iterators


#include <iostream>

#include <vector>

using namespace std;

int main() {

vector<int> num {1, 2, 3, 4, 5};


// declare iterator

vector<int>::iterator iter;

// use iterator with for loop

for (iter = num.begin(); iter != num.end(); ++iter) {

cout << *iter << " ";

return 0;

Output

1 2 3 4 5

Here, we have used a for loop to initialize and iterate the iterator iter from
the beginning of the vector to the end of the vector using
the begin() and end() functions.

// use iterator with for loop


for (iter = num.begin(); iter != num.end(); ++iter) {
cout << *iter << " ";
}

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy