Есть несколько векторов с одинаковым размером:
vector <string> TYPE;
vector <int> PRICE;
vector <string> STATUS;
vector <string> SURNAME;
vector <int> NUMBER;
Необходимо найти индекс элемента в векторе
NUMBER
, который соответствует значению введенному пользователем. Пытаюсь реализовать так:
cout << INPUT; cin >> number_room;
auto result = std::find(NUMBER.begin(), NUMBER.end(), number_room);
В
result
передается нужный итератор и по нему хочу удалить все элементы данных векторов:
int it = *result;
TYPE.erase(TYPE.begin() + it);
PRICE.erase(PRICE.begin() + it);
STATUS.erase(STATUS.begin() + it);
SURNAME.erase(SURNAME.begin() + it);
NUMBER.erase(NUMBER.begin() + it);
Компилятор выдает Ошибка сегментирования (стек памяти сброшен на диск). В чем ошибка? Пишу конечный автомат, если вдруг нужен подробный код, могу скинуть.
Предположение, что из-за разной типизации векторов. Через remove не могу сделать, тк нужно удалять именно по итератору.
Прошу помочь, буду признателен :)