Допустим у меня есть каталог продуктов и я хочу удалить какой-то элемент по ID (введенному с клавиатуры), который равен индексу этого элемента. При первом удаление все в порядке, но при вторичном – вектор сдвигается и удаляется не тот элемент. Элементами вектора являются экземпляры класса.
Я написал:
void Car::buyCar(int buyId) {
catalog.reserve(10);
catalog.erase(catalog.begin() + buyId);
}
И:
system("cls");
std::cout << "Введите свое имя: ";
std::cin >> client.name;
clientBase.push_back(client);
std::cout << std::endl;
cars.printCatalog();
std::cout << "\nВведите ID автомобиля, который хотите приобрести: ";
std::cin >> cars.id;
system("cls");
std::cout << "Поздравляем, " << client.name << "! Вы приобрели автомобиль под номером " << cars.id << ".";
cars.buyCar(cars.id);