![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
как удалить из ветора элемент по индексу?
когда я пытаюсь, пишет: [C++ Error] E2285 Could not find a match for '_STL::vector<Cfields,_STL::allocator<Cfields> >::erase(int)' Заранее благодарю за ответ. -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
srd |
|
|||
![]() Нереварин ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 951 Регистрация: 30.8.2003 Где: Владивосток Репутация: 27 Всего: 49 |
Ну, например vec.erase(vec.begin() + index);
-------------------- Не смей читать мою подпись!!! |
|||
|
||||
mr.DUDA |
|
||||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
или например,
-------------------- ![]() |
||||
|
|||||
FreshMeat |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 30.1.2004 Репутация: нет Всего: нет |
В общем случае неверно.
Метод erase принимает в качестве параметра iterator. Код работает потому, что в используемой Вами реализации STL итератор является указателем.
|
|||
|
||||
srd |
|
|||
![]() Нереварин ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 951 Регистрация: 30.8.2003 Где: Владивосток Репутация: 27 Всего: 49 |
Пофиг, является ли итератор указателем или нет, т.к. для итераторов вектора должны быть определены операторы прибавления целого, вычитания целого, инкремента и декремента, результатом которых является итератор. Поэтому в общем случае всё верно. Кстати, в VC++.NET 2003, с которой я работаю, итераторы вектора не являются указателями.
Это сообщение отредактировал(а) srd - 5.4.2004, 14:04 -------------------- Не смей читать мою подпись!!! |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
FreshMeat, в общем да, я насчёт "erase(&at(..." погорячился
![]() -------------------- ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |