I want to erase repeated elements in a vector; I used a for
loop to check if the next element in the vector is the same as the current element in the iteration and then delete it if true but, for some reason, it deletes the last element without being equal.
Here's my code:
#include <string>
#include <vector>
#include <iostream>
using namespace std;
template <typename T> vector<T> uniqueInOrder(const vector<T>& iterable){
vector<T> coolestVector = iterable;
for (int i = 0; i < coolestVector.size(); i++)
{
if (coolestVector[i] == coolestVector[i+1]){
coolestVector.erase(coolestVector.begin()+i);
i--;
}
/*for (int i = 0; i < coolestVector.size(); i++)
{
cout<<coolestVector[i]<<", ";
}
cout<<i<<", ";
cout<<coolestVector.size();
cout<<endl;*/
}
for (int i = 0; i < coolestVector.size(); i++)
{
cout<<coolestVector[i]<<endl;
}
return coolestVector;
}
vector<char> uniqueInOrder(const string& iterable){
vector<char> coolVector = {};
for (int i = 0; i < iterable.size(); i++)
{
coolVector.push_back(iterable[i]);
}
const vector<char> realVector = coolVector;
uniqueInOrder(realVector);
}
int main(){
const string test = "AAAABBBCCDAABBB";
uniqueInOrder(test);
}
output:
vector 0: A, A, A, B, B, B, C, C, D, A, A, B, B, B, iterator value -1, vector size 14
vector 0: A, A, B, B, B, C, C, D, A, A, B, B, B, iterator value -1, vector size 13
vector 0: A, B, B, B, C, C, D, A, A, B, B, B, iterator value -1, vector size 12
vector 1: A, B, B, B, C, C, D, A, A, B, B, B, iterator value 0, vector size 12
vector 1: A, B, B, C, C, D, A, A, B, B, B, iterator value 0, vector size 11
vector 1: A, B, C, C, D, A, A, B, B, B, iterator value 0, vector size 10
vector 2: A, B, C, C, D, A, A, B, B, B, iterator value 1, vector size 10
vector 2: A, B, C, D, A, A, B, B, B, iterator value 1, vector size 9
vector 3: A, B, C, D, A, A, B, B, B, iterator value 2, vector size 9
vector 4: A, B, C, D, A, A, B, B, B, iterator value 3, vector size 9
vector 4: A, B, C, D, A, B, B, B, iterator value 3, vector size 8
vector 5: A, B, C, D, A, B, B, B, iterator value 4, vector size 8
vector 5: A, B, C, D, A, B, B, iterator value 4, vector size 7
vector 5: A, B, C, D, A, B, iterator value 4, vector size 6
vector 5: A, B, C, D, A, iterator value 4, vector size 5
A
B
C
D
A
Expected:
A
B
C
D
A
B