How to Remove Second Occurrence of an Element from a Vector in C++?
Last Updated :
26 Feb, 2024
In C++, vectors are the dynamic arrays that store the data in the contiguous memory location. It can also contain multiple copies of the same element. In this article, we will learn how to remove the second occurrence of an element from a vector in C++.
Example:
Input:
myVector = {1, 2, 3, 4, 2, 5, 2};
Key = 2
Output:
Elements before removing target is: {1, 2, 3, 4, 2, 5, 2};
Elements after removing target is: {1, 2, 3, 4, 5, 2};
Remove Second Occurrence of an Element from a Vector in C++
To remove the second occurrence of an element from a vector in C++, we can use the combination of std::find() and std::vector::erase() functions.
We can use the std::find() function to find the second occurrence and then use the std::vector::erase() function to remove the second occurence.
C++ Program to Remove Second Occurrence of an Element from a Vector
C++
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
void removeSecondOccurrence(vector< int >& vec, int element)
{
auto it = find(vec.begin(), vec.end(), element);
if (it != vec.end()) {
it = find(it + 1, vec.end(), element);
if (it != vec.end()) {
vec.erase(it);
}
}
}
int main()
{
vector< int > vec = { 1, 2, 3, 2, 4, 2, 5 };
cout << "Original vector: " ;
for ( int i : vec) {
cout << i << " " ;
}
cout << endl;
removeSecondOccurrence(vec, 2);
cout << "After removing second occurrence of 2: " ;
for ( int i : vec) {
cout << i << " " ;
}
cout << endl;
return 0;
}
|
Output
Original vector: 1 2 3 2 4 2 5
After removing second occurrence of 2: 1 2 3 4 2 5
Time Complexity: O(N)
Space Complexity: O(1)
Share your thoughts in the comments
Please Login to comment...