Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > удаление из вектора по индексу? |
Автор: _hunter 3.4.2004, 17:09 |
как удалить из ветора элемент по индексу? когда я пытаюсь, пишет: [C++ Error] E2285 Could not find a match for '_STL::vector<Cfields,_STL::allocator<Cfields> >::erase(int)' Заранее благодарю за ответ. |
Автор: srd 3.4.2004, 17:57 |
Ну, например vec.erase(vec.begin() + index); |
Автор: mr.DUDA 3.4.2004, 21:53 | ||||
или например,
|
Автор: FreshMeat 5.4.2004, 12:07 | ||
В общем случае неверно. Метод erase принимает в качестве параметра iterator. Код работает потому, что в используемой Вами реализации STL итератор является указателем.
|
Автор: srd 5.4.2004, 14:03 |
Пофиг, является ли итератор указателем или нет, т.к. для итераторов вектора должны быть определены операторы прибавления целого, вычитания целого, инкремента и декремента, результатом которых является итератор. Поэтому в общем случае всё верно. Кстати, в VC++.NET 2003, с которой я работаю, итераторы вектора не являются указателями. |
Автор: mr.DUDA 5.4.2004, 14:27 |
FreshMeat, в общем да, я насчёт "erase(&at(..." погорячился ![]() |