Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
vorob
6 / 6 / 3
Регистрация: 07.01.2012
Сообщений: 18
#1

std::vector::erase - C++

23.03.2013, 18:25. Просмотров 866. Ответов 5
Метки нет (Все метки)

Всем привет.
Буду очень рад, если кто-нибудь может мне объяснить логику... см. скриншот....
Миниатюры
std::vector::erase  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2013, 18:25     std::vector::erase
Посмотрите здесь:

Ошибка при использовании erase для std::vector - C++
Почему в случае удаления элемента из вектора с помощью передачи итератора в erase, который соответствует позиции удаляемого элемента...

vector.erase - C++
Помогите пожалуйста с синтаксисом удаления любого элемента из вектора Вот тут ошибка: #include <vector.h> void main() { ...

vector::erase()? - C++
есть вектор структур struct person{ string name; int age; vector <person> repw;

Функция Erase класса vector - C++
Нужно удалить из вектора, в котором объекты авторского класса, объекты с весом более 300. Написал цикл, но при запуске пишет Iterators...

Крах при vector.erase() - C++
Всё вроде бы работает так, как мне надо...но когда остаётся 1 элемент и его нужно очистить, программа крашится. Что я сделал не так? ...

Vector <bool> erase iterator outside range - C++
Помогите, пожалуйста. При компиляции появляется ошибка (фото ниже). Это реализация алгоритма Хаффмана. Не могу понять, что не так, по...

Ошибка в функции erase для vector - C++
cout &lt;&lt; &quot;How much numbers? : &quot;; int n; cin &gt;&gt; n; vector&lt;int&gt;array(n); for (int i = 0; i &lt; n; i++) { cin &gt;&gt; array; ...

Ошибка “vector<bool> erase iterator outside range” при работе алгоритма Хаффмана - C++
Проблема с функцией BuildTable. Компилируется, но в процессе работы возникает ошибка. // Huffmann.cpp: определяет точку входа для...

Собеседование std::vector - C++
1) Вечереет. Вы крутой старший разработчик, сидите и делаете вид, что кодите мегапроект. У вас через полчаса собеседование. Вы...

std::vector и деструкторы - C++
Создаю динамический массив vector, состоящий из объектов, в которых есть конструкторы и деструкторы. как-то так: { vector&lt;Element&gt;...

Указатель на std::vector - C++
Добрый вечер, всегда боялся передавать доступ к std::vector'y класса через: 1) указатель на контейнер 2) ссылка на контейнер 3)...

std::vector пустой - C++
Всем привет. Собственно проблема: a.push_back(56); Как бы я не добавлял елементы в вектор он все ровно пустой. Раньше такого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6552 / 3972 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
23.03.2013, 19:36     std::vector::erase #2
сдвиг
DU
1480 / 1056 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
23.03.2013, 19:44     std::vector::erase #3
нужно больше трассировки добавить. на конструктор копирования, на оператор =, на варианты с && и т.п.
тогда увидите, что там происходит.
vorob
6 / 6 / 3
Регистрация: 07.01.2012
Сообщений: 18
23.03.2013, 19:45  [ТС]     std::vector::erase #4
Jupiter, Видимо я Вас неправильно понял, но...
Миниатюры
std::vector::erase  
Jupiter
Каратель
Эксперт С++
6552 / 3972 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
23.03.2013, 19:54     std::vector::erase #5
Цитата Сообщение от vorob Посмотреть сообщение
Видимо я Вас неправильно понял, но...
erase сдвинул элементы назад на одну позицию начиная с элемента который следовал за удаляемым и затем удалил последний элемент.
Код
начальное состояние:         1 2 3 4 5 6 7 8 9 10
удаляем 2-ку, путем сдвига:  1 3 4 5 6 7 8 9 10 10
конечное состояние:          1 3 4 5 6 7 8 9 10
vorob
6 / 6 / 3
Регистрация: 07.01.2012
Сообщений: 18
23.03.2013, 20:07  [ТС]     std::vector::erase #6
Jupiter, Вот как... странно что перед этим не был вызван деструктор для двойки... печаль.
Спасибо.
Yandex
Объявления
23.03.2013, 20:07     std::vector::erase
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru