Why do you remove some item, but not the others?
The vector is also supposed to keep the "history" of relevant inputs, so the game code could call:
if(input.IsMatch("MOVE_DOWN", "MOVE_DOWN_LEFT", "MOVE_LEFT"))
{
//Do something knowing this sequence has been pressed, such as a special move for fighting games
}
So I check if it's time to remove the input from the history or not, and process the ones for the next update (because my code might've lagged out, so I'm only queueing the ones in between a certain time frame).
And well, regarding the names, it's still a queue... it's just not the std::queue.
When I think queue, I think "ah, something that will be dealt with later on" (and when the order is important). And also I never knew about the std::queue before this topic ahahaha
Though it wouldn't fit in this example since the vector is doing more than just a queue.