Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вызвано исключение: нарушение доступа для записи (visual studio 2017) https://www.cyberforum.ru/ cpp-beginners/ thread2492695.html
#include <iostream> #include <cstdlib> #include <string> using namespace std; int main() { int a; cout << "How many names: "; cin >> a;
Переполнение и тип данных C++
Есть задание, в котором надо перемножить 4 переменные (W, H, D, R), причем W, H, D <= 10^4, R <= 100. Переменную для результата объявил long long unsigned int, но ее не хватает для сохранения...
C++ Квадратное уравнение С++ https://www.cyberforum.ru/ cpp-beginners/ thread2492641.html
Прошу показать пример квадратного уравнения на языке C++. При написании использовать структуру с использованием адресов и ссылок на переменные.
C++ Не срабатывает логическое суммирование для char значений Всем привет. Не могу понять из-за чего не срабатывает логическое суммирование для массива char (1 байт), в отличие от массива short (2 байта). Имеется код: #include <iostream> using namespace... https://www.cyberforum.ru/ cpp-beginners/ thread2492616.html
Создать файл с € в названии C++
Из файла парсятся некоторые данные, которые сохраняются в переменные. В частности, в переменную стринг сохраняется строчка "€125 название". В дальнейшем создаётся новый файл, в котором сохраняются...
C++ MFC и двоичные файлы https://www.cyberforum.ru/ cpp-beginners/ thread2492579.html
У меня есть двоичный файл. Мне необходимо считать его в приложение и вывести в виде простыни текста в приложении SDI в окно документа. Вот сюда. Я не совсем понимаю, как можно, вообще, это...
C++ Поэлементно просуммировать два динамических двумерных массива https://www.cyberforum.ru/ cpp-beginners/ thread2492567.html
Здравствуйте, у меня такое задание: Написать программу, которая поэлементно суммирует два динамических двумерных массива, заполненных случайными числами и сохраняет результат в третьем массиве....
C++ Как напечатать enum class?
Как напечатать enum class? Enum class находится в интерфейсе строка 5. Мне нужно чтобы напечаталось допустим Magical_Realism. Функция которая печатет находится в реализации 191 строка. ...
C++ Не понимаю как работает алгоритм Всем доброго времени суток. Настиг такой вопрос, с которым уже более недели не могу разобраться: искал везде, читал всё, на англоязычном инете ничего полезного не нашел(на русскоязычном вообще ничего... https://www.cyberforum.ru/ cpp-beginners/ thread2492546.html C++ Реализовать функцию, которая принимает массив, а также число n, и возвращает индекс Реализовать функцию, которая принимает массив (плюс его длину) , а также число n, и возвращает индекс числа в массиве или -1, если такого числа нет. Прототип: int Search (int a , const int n, int... https://www.cyberforum.ru/ cpp-beginners/ thread2492542.html
C++ Перевод указателя на член класса в обычный указатель
Добрый день. Есть некоторый API, который принимает обычные указатели на функцию и поэтому при создании приложения на ООП возникает проблема перевода указателя на член класса в обычный указатель. ...
C++ Нейронная сеть на c++ Уважаемые форумчане нужна ваша помощь с нейронной сетью на c++! На днях захотел написать прогу - многослойный перцептрон на c++, вроде информации много и пытался менять код, но всё одинаково, прога... https://www.cyberforum.ru/ cpp-beginners/ thread2492504.html
Комп_Оратор)
Эксперт по математике/физике
8719 / 4426 / 598
Регистрация: 04.12.2011
Сообщений: 13,262
Записей в блоге: 16
20.08.2019, 19:09 0

Почему итераторы в STL используют такой странный подход к индексации? - C++ - Ответ 13781490

20.08.2019, 19:09. Показов 3179. Ответов 23
Метки (Все метки)

Ответ

Марауль, так решил Создатель. Существует ряд подходов к хранению информации о размере. Можно хранить специальное поле, например. В этом случае для возврата итератора в ничто достаточно было бы статического объекта "ничто". То есть, когда поиск возвращает такой итератор то он не удался. Недостатком является невозможность декремента такого итератора.
Но и издержки достаточно велики (имхо). Больше всех досталось спискам. Список - король алгоритма. А в С++ он не является полноценно рекурсивным контейнером. Если бы размер присутствовал как поле экземпляра, то любой поддиапазон списка (валидный, конечно) мог бы быть реализован как полноценный список. Проблемы с равными адресами (при неравных размерах) можно бы решить. Но решили по другому. Ещё хуже то, что список получает свой размер от функции члена size() проходя по всему списку и считая элементы, в большинстве реализаций. Это касается и linked и двусвязного списка.
О преимуществах разделения на диапазоны, работы с итераторами для указания позиции вставки/удаления и пр. уже сказано и свой смысл в принятом подходе есть, безусловно.
То, что вы задаёте такой вопрос, это хорошо.

Вернуться к обсуждению:
Почему итераторы в STL используют такой странный подход к индексации? C++
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.08.2019, 19:09
Готовые ответы и решения:

Почему создатели языка C++ придумали такой странный синтаксис обращения к элементам одномерного массива?
К элементам массива можно обращаться разными способами. Обычно в квадратных скобках пишут номер...

Вывод календаря на заданый месяц. Не могу понять почему вывод странный такой
Суть в том, что никак не считает правильно пробелы в первой неделе. Постоянно бред какой-то...

STL. Итераторы и последовательные контейнеры
Немогу решить эти задачки: 1 Написать экземпляр класса queue на основе элементов типа string. ...

Итераторы потокового ввода/вывода stl
Возник такой вопрос при изучении stl. Берем файл, из которого нужно считать данные, через copy...

23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.08.2019, 19:09

Помощь в написании контрольных, курсовых и дипломных работ здесь.

STL. Не работает вывод через << в поток когда использую итераторы :(
Вроде бы ничего сложного, но почему-то работать не хочет. Никак не могу понять почему ( Ругается,...

Найти элемент в контейнере priority_queue, используя STL вские итераторы и алгоритмы
Здравствуйте, задача описана в навание темы. Можно перебрать в цикле все элементы очереди,...

Можно ли использовать такой подход в классах?
Подскажите пожалуйста. Можно ли в конструкторе класса В, создавать объект другого класса А и...

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