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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.70
Vyacheslav
Сообщений: n/a
#1

vector , Поиск в списке по указателю, корректно ли это? - C++

22.03.2007, 20:58. Просмотров 2825. Ответов 4
Метки нет (Все метки)

Доброго времени суток! Есть вектор. Вектор хранит указатели на объекты. У объектов есть поле [value]. Это поле используется для сравнения объектов. В некоторый момент, после обработки очередного объекта [A] мне необходимо удалить физически и из вектора объект с значением [value] меньшим чем у объекта [A]. После удаления, мне необходимо продолжить поиск объектов с значением [value] меньшим чем у [A] , и т.д. Т.е. необходимо удалить n-ое количество объектов на основе [value].
После удаления элемента итератор остается некорректным. А все дело в том, что мне необходимо как-то запомнить объект [A]. Напрашивается способ - запоминать указатель хранимый в [A]. И, каждый раз , после удаления элемента восстанавливать итератор на [A] по запомненному значению указателя.
Сортировать не годится. Ресурсы памяти есть главный критерий, а при сортировке возможно выделение вектором дополнительной памяти под свои нужды. Критерий по которому начинают удаляться объекты - нехватка памяти.
Корректно ли это?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2007, 20:58     vector , Поиск в списке по указателю, корректно ли это?
Посмотрите здесь:

Поиск в vector < vector <T> > - C++
есть двумерный массив vector &lt; vector &lt;double&gt; &gt; a(size, vector&lt;double&gt;(size, 0)); заполняем рандомом, надо найти индекс последнего...

std::vector<int> Что это за тип данных? - C++
std::vector&lt;int&gt; indexes_1, indexes_2; // Used for homography Что это за тип данных?

Поиск в контейнере vector - C++
например есть класс class A{ int i; publuc: A(int i):i(i); }; и создан контейнер vector типа A

Извлечь значения из std::vector<char>, трактуя каждый символ, как разряд числа, сформировать это число - C++
Доброго времени суток. Есть вектор char std::vector &lt; char &gt; VECT; Его содержимое, например VECT == 43 '+' VECT ==...

Нужно произвести считывание пути к файлу с клавиатуры. Причём сделать это в конструкторе. Всё остальное корректно работает. - C++
Заранее благодарен всем кто поможет. Здравстуйте, была полностью рабочая программа которая считывает данные с файла, потом сортирует...

Массив списков vector<list<int>>. Поиск - C++
Имеется массив списков vector&lt;list&lt;int&gt;&gt; table(h); . Как в нем осуществить поиск?

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
22.03.2007, 21:07     vector , Поиск в списке по указателю, корректно ли это? #2
обычно в таких случаях (когда по ходу обработки требуется удаление объектов из вектора) пробегают вектор не от начала к концу, а наоборот от конца к началу, тогда указатель на следующий элемент обработки должен оставаться корректным



Удачи,

Владимир
Vyacheslav
Сообщений: n/a
24.03.2007, 22:07     vector , Поиск в списке по указателю, корректно ли это? #3
Спасибо! Тока дорвался до инета.
Ты имел в виду указатель который есть значение элемента вектора, или итератор?
_Natalia_
Сообщений: n/a
31.03.2007, 08:48     vector , Поиск в списке по указателю, корректно ли это? #4
Здравствуйте, Вячеслав
Не знаю до сих пор ли актуален ваш вопрос, но отвечу.
Если вы используете стандартную библиотеку stl т ее класс vector http://www.cppreference.com/cppvector/index.html то тогда я не вижу проблемы, то есть вы каждый раз будете проверять менше ли значение или нет, если меньше, то итератор it = vector.erase(it) (так как функция возвращает итератор на элемент, следующий за удаленным), и если нет, то просто ++it
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2007, 20:45     vector , Поиск в списке по указателю, корректно ли это?
Еще ссылки по теме:

Поиск в списке - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;cstring&gt; #include &lt;windows.h&gt; using namespace std; struct element{ ...

Осуществить поиск в списке - C++
Здравствуйте,вот такая вот проблема у нас новый препод она первый год преподает, предмет очень тяжело на практике нечего не успеваю нужна...

Поиск в двусвязном списке - C++
Доброго времени суток. Помогите написать код, который ищет в двусвязном списке елемент по его значению. Тоесть идёт запрос в консоле...

Поиск элемента в списке - C++
Добрый день! У меня есть набор некоторых значений, например такой: (&quot;0&quot;, &quot;1&quot;,&quot;6&quot;,&quot;7&quot;,&quot;8&quot;,&quot;9&quot;,&quot;10&quot;,&quot;11&quot;....) Мне же нежно среди...

Рекурсивный поиск в списке - C++
Добрый вечер. Я решал одну задачку из книги Х.Дейтела и П.Дейтела &quot;Как программировать на C++&quot; и у меня возникла одна проблема. ...

удаление и поиск в списке - C++
Подскажите, как реализовать функции удаления и поиска числа в списке? Нужно, что бы удаление происходило по индексу элемента, а поиск по...


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

Или воспользуйтесь поиском по форуму:
Vyacheslav
Сообщений: n/a
31.03.2007, 20:45     vector , Поиск в списке по указателю, корректно ли это? #5
Здравствуйте, _Natalia_!
Спасибо ! По всему видимо так.
Это у меня бывает - работаешь, работаешь, смотришь на код и в какой-то момент времени начинают мерещиться "черти".
Yandex
Объявления
31.03.2007, 20:45     vector , Поиск в списке по указателю, корректно ли это?
Ответ Создать тему
Опции темы

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