Avatar ·

Como remover um elemento de std::vector por índice em C++?

Olá, colegas! Sou novo em C++ e encontrei um problema ao trabalhar com std::vector. Preciso remover um elemento pelo seu índice, mas não consigo encontrar a maneira correta. Aqui está meu código: ```cpp #include #include int main() { std::vector numbers = {10, 20, 30, 40, 50}; int index_to_remove = 2; // Quero remover o elemento 30 // Tento usar erase, mas não sei como passar o índice // numbers.erase(index_to_remove); // Erro de compilação // Tento através de iterator numbers.erase(numbers.begin() + index_to_remove); for (int n : numbers) { std::cout << n << " "; } // Espero: 10 20 40 50, mas o código trava ou se comporta de forma estranha return 0; } ``` Li a documentação, mas ainda estou confuso. Por que `erase` não aceita simplesmente um número? E é sempre necessário usar `begin() + index`? O que acontece se o índice estiver fora dos limites? Como lidar com erros corretamente? Ficarei grato por uma explicação detalhada com exemplos.