|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
03.03.2016, 16:05 | #41 |
Заблокирован
Регистрация: 06.02.2011
Сообщений: 1,999
|
вот нашел. разве бы это работало в списке ?
в векторе выделяется четко скоординированный обьем памяти к примеру 1-й элемент имеет адрес 0x01 2-й 0x02 и т.д. в списке нету такой упорядоченности. вернее она не обязательна. Код:
|
03.03.2016, 16:38 | #42 |
Форумчанин
Регистрация: 22.02.2016
Сообщений: 145
|
Работа с указателями и итераторами С/С++
Если б создали в программе список до операций освобождения памяти, то элементы разместились бы последовательно как в массиве. Из-за этого возможна ситуация, когда работа с указателем на элемент списка методами пригодными для указателя на элемент массива (инкремент и сложение с целым) не будет приводить к ошибке времени исполнения.
Если бы делался список в С, то к указателю можно было бы применить оператор инкремента для прохода по списку. Ошибки не было бы, ну разве что руки отломают за такое. Хотя зачет студенту за программу не светит точно. Для итераторов в С++, я так думаю, арифметические операторы тривиальны для массивов и перегружены более сложными функциями для списков. Есть правило: изменили контейнер - итераторы недействительны. Проще соблюдать это правило, чем думать, изменится что-то или нет. Да и потребности такой нет.
Возьму в кредит мильён по 100% годовых на сто лет.
Последний раз редактировалось ProBeginner; 04.03.2016 в 13:38. |
03.03.2016, 16:57 | #43 | |
Заблокирован
Регистрация: 06.02.2011
Сообщений: 1,999
|
Цитата:
но потом все последующие операции могут привести к нарушению последовательности как в массиве. это в списке допускается. там простые указатели применять нельзя как выше в примере с вектором. в векторе всегда соблюдается последовательность. а для соблюдения этой последовательности нужно делать обновление вектора. вот по этому вектор такой медленный.нужно смотреть что возвращает метод который способствовал этому изменению . самое простое это кинуть итератор в начало. Последний раз редактировалось RAFA91; 03.03.2016 в 17:00. |
|
03.03.2016, 17:20 | #44 | ||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
||
03.03.2016, 17:38 | #45 |
Заблокирован
Регистрация: 06.02.2011
Сообщений: 1,999
|
|
04.03.2016, 13:21 | #46 |
Заблокирован
Регистрация: 06.02.2011
Сообщений: 1,999
|
список намного лучше вектора. в нем итератор адекватный.
один минус - это не имеет произвольного доступа как в векторе. |
04.03.2016, 13:48 | #47 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
список просто не вектор.
у них разные принципы. итератор и там и там адекватный. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
04.03.2016, 14:14 | #48 |
Заблокирован
Регистрация: 06.02.2011
Сообщений: 1,999
|
это логично из названия.
для списка нужно брать advence() итератор списка построен совсем иначе. там только ++ и -- += уже шыш. ______________________ зачем нужен файл Код:
каждый контейнер имеет в своем составе итератор же Последний раз редактировалось RAFA91; 04.03.2016 в 14:22. |
04.03.2016, 14:48 | #49 | ||
Вредный кошак
Участник клуба
Регистрация: 14.10.2012
Сообщений: 1,159
|
Цитата:
Цитата:
|
||
04.03.2016, 14:51 | #50 |
Заблокирован
Регистрация: 06.02.2011
Сообщений: 1,999
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Итератор для двусвязного списка | Black_Dynamite | Помощь студентам | 0 | 07.11.2013 22:04 |
итератор set c++ | Arrioh | Помощь студентам | 1 | 25.12.2012 16:01 |
Итератор списка по значению | Link0 | Общие вопросы по Java, Java SE, Kotlin | 0 | 21.11.2010 14:02 |