How to Remove Duplicates in a Vector in C++ - Step by Step Examples
How to Remove Duplicates in a Vector in C++ ?
Answer
To remove duplicates from a vector in C++, you can use the std::sort
and std::unique
algorithms from the Standard Library, or you can use a std::unordered_set
to keep only unique elements.
✐ Examples
1 Remove All Duplicates from a Vector Using std::unordered_set
In this example,
- We start by including the necessary headers:
<vector>
,<unordered_set>
, and<iostream>
. - We create a vector named
vec
and initialize it with some integer values, including duplicates. - Next, we create an
std::unordered_set
namedset
and initialize it with the elements ofvec
. Theunordered_set
only keeps unique elements. - We then create a new vector named
unique_vec
and initialize it with the elements of the set. This ensures thatunique_vec
contains only unique elements from the original vector. - Finally, we print the new vector to standard output to see the result.
C++ Program
#include <vector>
#include <unordered_set>
#include <iostream>
int main() {
std::vector<int> vec = {1, 2, 2, 3, 4, 4, 4, 5, 6, 6};
std::unordered_set<int> set(vec.begin(), vec.end());
std::vector<int> unique_vec(set.begin(), set.end());
std::cout << "Vector after removing all duplicates: ";
for (const int &val : unique_vec) {
std::cout << val << " ";
}
std::cout << std::endl;
return 0;
}
Output
Vector after removing all duplicates: 1 2 3 4 5 6
2 Remove Consecutive Duplicates from a Sorted Vector
In this example,
- We start by including the necessary headers:
<vector>
,<algorithm>
, and<iostream>
. - We create a vector named
vec
and initialize it with some integer values, including consecutive duplicates. - Next, we use the
std::sort
algorithm to sort the vector. This step is crucial becausestd::unique
only removes consecutive duplicates, so the vector must be sorted first. - We then use the
std::unique
algorithm to remove consecutive duplicates. This algorithm returns an iterator pointing to the new logical end of the vector. - We resize the vector to remove the undefined elements left at the end after using
std::unique
by passing the iterator returned bystd::unique
to theerase
method. - Finally, we print the modified vector to standard output to see the result.
C++ Program
#include <vector>
#include <algorithm>
#include <iostream>
int main() {
std::vector<int> vec = {1, 2, 2, 3, 4, 4, 4, 5, 6, 6};
std::sort(vec.begin(), vec.end());
auto it = std::unique(vec.begin(), vec.end());
vec.erase(it, vec.end());
std::cout << "Vector after removing duplicates: ";
for (const int &val : vec) {
std::cout << val << " ";
}
std::cout << std::endl;
return 0;
}
Output
Vector after removing duplicates: 1 2 3 4 5 6
Summary
In this tutorial, we learned How to Remove Duplicates in a Vector in C++ language with well detailed examples.
More C++ Vectors Tutorials
- How to create an Empty Vector in C++ ?
- How to Initialize a Vector in C++ ?
- How to Get Length of a Vector in C++ ?
- How to create a Vector of Size N in C++ ?
- How to create a Vector of Numbers from 1 to N in C++ ?
- How to create a Vector of Integers in C++ ?
- How to create a Vector of Strings in C++ ?
- How to create a Vector of Empty Vectors in C++ ?
- How to Access Items in a Vector in C++ ?
- How to get Item in a Vector at a Specific Index in C++ ?
- How to get First Item in a Vector in C++ ?
- How to get Last Item in a Vector in C++ ?
- How to Iterate Over a Vector in C++ ?
- How to Iterate Over a Vector with Index in C++ ?
- How to Iterate Over a Vector in Reverse Order in C++ ?
- How to check if a Vector is Empty in C++ ?
- How to check if a Vector is Not Empty in C++ ?
- How to get Sub Vector in C++ ?
- How to get the Index of Specified Item in a Vector in C++ ?
- How to check if a Specific Item is present in the Vector in C++ ?
- How to check if a Vector contains all the items of Another Vector in C++ ?
- How to count the Number of Occurrences of Specific Item in the Vector in C++ ?
- How to find the Item with Maximum Number of Occurrences in a Vector in C++ ?
- How to find the Item with Minimum Number of Occurrences in a Vector in C++ ?
- How to Sort a Vector in C++ ?
- How to Sort a Vector in Ascending Order in C++ ?
- How to Sort a Vector in Descending Order in C++ ?
- How to create a Two Dimensional Vector in C++ ?
- How to Iterate over a Two Dimensional Vector in C++ ?
- How to create a Three Dimensional Vector in C++ ?
- How to Copy a Vector in C++ ?
- How to Split a Vector in C++ ?
- How to Join Vectors in C++ ?
- How to Append an Item to a Vector in C++ ?
- How to Insert an Item at Specific Index in a Vector in C++ ?
- How to Append a Vector to another Vector in C++ ?
- How to Concatenate Two Vectors in C++ ?
- How to check if Two Vectors are Equal in C++ ?
- How to check if Two Vectors have Same Items (Regardless of Order) in C++ ?
- How to Convert a Vector of Integers to a Vector of Strings in C++ ?
- How to Convert a Vector of Strings to a Vector of Integers in C++ ?
- How to Convert a Vector of Floats to a Vector of Strings in C++ ?
- How to Convert a Vector of Strings to a Vector of Floats in C++ ?
- How to Reverse a Vector in C++ ?
- How to Shuffle a Vector in C++ ?
- How to Slice a Vector in C++ ?
- How to get First N Items from a Vector in C++ ?
- How to get Last N Items from a Vector in C++ ?
- How to Rotate Items in a Vector in C++ ?
- How to Filter Items of a Vector based on a Condition in C++ ?
- How to Remove Duplicates in a Vector in C++ ?
- How to Remove Item at a Specific Index from a Vector in C++ ?
- How to Remove Specific Item from a Vector in C++ ?
- How to Remove Items from Vector based on a Condition in C++ ?
- How to Sort a String Vector in Dictionary Order in C++ ?
- How to Concatenate Strings in Vector in C++ ?
- How to create a Vector of Vectors in C++ ?