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

Двунаправленный список, доступ к элементу - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычислить и вывести на печать положительные значения функции http://www.cyberforum.ru/cpp-beginners/thread152186.html
Обчислить и вывести на печать полоительные значения функции Y=SIN(n*x)-COS(n*x) если n=1..50
C++ Поиск определенного слова Помогите решить задачку Имеется текст, нужно искать названия дней недели и выводить их на экран. Например: в понедельник у меня две пары, а во вторник только одна. На экран: понедельник,... http://www.cyberforum.ru/cpp-beginners/thread152168.html
C++ Замена элементов в массиве
Привет, помогите решить задачу В двумерном массиве заменить все парные элементы на минимальный элемент матрицы. Вывести на экран измененный массив. Добавлено через 1 час 24 минуты нужно на си
преобразования в Си... C++
Помогите разработать программу преобразования целых десятичных чисел с разрядностью до 7 цифр в словесное описание без грамматических ошибок. В языке Си.
C++ перевод числа в двоичное http://www.cyberforum.ru/cpp-beginners/thread152111.html
Как перевести число 0x7145 в двоичный вид?
C++ Заголовок Как вывести заголовок перед таблицей в си++? подробнее

Показать сообщение отдельно
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,370
07.07.2010, 12:30
А что здесь особенно расписывать то?
В теле функции-члена:
1. проверяешь запрошенный индекс элемента. Если он меньше нуля или больше или равен количеству элементов списка, то делаешь что-то нехорошее (например, бросаешь исключение) - это явная ошибка вызова.
2. Если все пока ок, то:
2.1. заводишь переменную-счетчик текущего индекса, устанавливаешь ее в 0. Текущий элемент у тебя - "голова" твоего списка.
2.2. сравниваешь счетчик с запрошенным индексом. Если равны - возвращаешь ссылку на текущий элемент. Иначе, переходишь к следующему элементу и инкрементируешь счетчик.
2.3. переходишь к п.2.2.
Вот и все........

Разве что, идеологически более правильно сделать две функции:
Element& operator[] (int _index); - для записи элемента, и
const Element& operator[] (int _index) const; - для чтения.
А компилятор сам разберется, когда какую вызывать. Тела их абсолютно идентичны. Даже можно константную версию реализовать через неконстантную.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru