But my program keeps on crashing.
I tried the reverse way also :
for(int t1 = index.size()-1; t1 > 0; --t1)
{
words.erase(words.begin()+index[t1])
}

I also tried to decrement the values in the vector Index since every time i remove an element from vector numbers the index will decrease right?
So also it crashed

You had the right idea, you just solved it both ways.
Either going through the array backwards OR subtracting the counter would have worked, but when you do both, you run off the front of the array.

Going through the array backwards is the most standard way to do it. So just remove the 'counter' variable and it should work.

Hello Tommy, Thank you for your answers as usual.
Tommy I tried this but it didn't work i'll tell you why.

Suppose that i have the vector<int> INDEX = {5,6,7}
and I have the vector<int> Letters = {A,B,C,D,E,F,G,H,I,J,K,L}
I want to remove the letters at index 5, 6 and 7 right?
So When i remove the letter at Index 5 which is "F"
Letter = {A,B,C,D,E,G,H,I,J,K,L} And in vector INDEX: 6 should become 5 and 7 should become 6.

What do you think? I'll post this code and let me know if it's right or if my logic is wrong.

vector<int>a = {0,0,0,0,1,1,1,1,0,0,0,0,1,0,0,0,0,0,0}; vector<int>index; int t = 0; while(t < a.size() && a[t] != 1) { index.push_back(t); t = t + 1; } t = a.size()-1; while( t > 0 && a[t] != 1) { index.push_back(t); t = t - 1; } sort(index.begin(),index.end()); index.erase(std::unique(index.begin(), index.end()), index.end()); cout << "Before: "; for(int i = 0; i <a.size();i++) { cout << a[i] <<" "; } cout << endl; int counter = 0; for(int i = 0; i < index.size();i++) { a.erase(a.begin() + (index[i]-counter)); counter = counter + 1; } cout <<"After: "; for(int i = 0; i < a.size();i++) { cout << a[i] <<" "; }

Then it should work. Because when you erase the element 7, nothing else moves. As long as you know index[] is sorted it works.

Note that this is almost exactly what you tried but without the extra counter. The only difference is you need to use >=0 instead of >0 in the for loop or you miss the first one.

Templates For Beginners
Or
How To Encourage The Compiler To Work For You
Introduction
This tutorial is targeted at the reader who is, perhaps, familiar with the basics of C++ but would prefer a little slower introduction to the more ad…

The greatest common divisor (gcd) of two positive integers is their largest common divisor. Let's consider two numbers 12 and 20.
The divisors of 12 are 1, 2, 3, 4, 6, 12
The divisors of 20 are 1, 2, 4, 5, 10 20
The highest number among the c…

The goal of the video will be to teach the user the concept of local variables and scope. An example of a locally defined variable will be given as well as an explanation of what scope is in C++. The local variable and concept of scope will be relat…

The viewer will learn how to use the return statement in functions in C++. The video will also teach the user how to pass data to a function and have the function return data back for further processing.