|
5 / 5 / 1
Регистрация: 15.12.2015
Сообщений: 51
|
|
Почему итераторы в STL используют такой странный подход к индексации?20.08.2019, 17:00. Показов 4577. Ответов 23
Метки нет (Все метки)
Здравствуйте. Вопросы касаются пока только последовательных контейнеров.
Почему при инициализации контейнера массивом из, например, 5 элементов, мы прибавляем к адресу массива во втором аргументе не 4, а 5? В первом аргументе содержится адрес первого элемента, сдвинулись 4 раза = получили все остальные, включая последний. Зачем делать ещё один лишний сдвиг и заходить за диапазон? Это касается и метода контейнера .end(), который возвращает значение итератора "последний элемент + 1".
1
|
|
| 20.08.2019, 17:00 | |
|
Ответы с готовыми решениями:
23
Вывод календаря на заданый месяц. Не могу понять почему вывод странный такой STL. Итераторы и последовательные контейнеры |
|
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,361
|
|
| 21.08.2019, 10:45 | |
Сообщение было отмечено Марауль как решение
Решение
Марауль, это же удобно. Допустим хотим взять и первые n чисел отсортировать.
std::sort(a.begin(), a.begin() + n);удобнее чем std::sort(a.begin(), a.begin() + n - 1);Или например хотим отсортировать первую половину массива, а вторую не трогать. std::sort(a.begin(), a.begin() + a.size() / 2); // и опять -1 не надо писатьЕсли привыкнуть к полуинтервалам, то это очень удобная штука.
1
|
|
|
Комп_Оратор)
|
|||
| 21.08.2019, 11:16 | |||
std::sort(a.begin(), n );Это просто проще. Когда новичков (простите за тавтологию Новичок), учат передавать указатель на первый элемент массива и количество элементов, это именно оно. Функции не нужно знать истинного размера. У неё другая задача. Поэтому может и вылететь, конечно. Но если бы итератор имел размер (разделяемое данное) и свою текущую позицию - поле экземпляра, то не было бы вопросов ни к чему. Кроме действий юзера, конечно. ![]() Но потери валидности итераторов можно было бы избежать в ряде случаев. То есть есть за что платить. Добавлено через 8 минут
0
|
|||
|
5 / 5 / 1
Регистрация: 15.12.2015
Сообщений: 51
|
|
| 21.08.2019, 13:12 [ТС] | |
|
Ничего себе, какую крутую вы тут беседу развели!
Жаль, что я пока ещё не всё понимаю)TRam_, TheCalligrapher, Новичок, спасибо большое вам за разъяснения!! Вот стоило ведь мне догадаться о том, что такой подход прост и прекрасен, но я не догадался. Зато теперь я понимаю ещё одну вещь: если что-то кажется странным, то нужно просто посмотреть на это с другой стороны, расширить свой взгляд. IGPIGP, спасибо за ваш ответ с философской ноткой! Мне сейчас пока не всё понятно, но я возьму сказанное Вами на заметку.
0
|
|
|
Комп_Оратор)
|
|||
| 21.08.2019, 14:25 | |||
|
0
|
|||
| 21.08.2019, 14:25 | |
|
Итераторы потокового ввода/вывода stl STL. Не работает вывод через << в поток когда использую итераторы :(
Можно ли использовать такой подход в классах? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот.
Ларри Уингет
|
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
|
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы
## О чём эта статья
В процессе построения ОДУ-модели (система дифференциальных. . .
|
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет)
Содержание проекта
Симуляция вековой (50 лет) экологической сукцессии в почве леса
Основные участники: АМ-гриб, ЭКМ-гриб,. . .
|