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

Реализовать двунаправленный список в духе списка из STL - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ порядок в выражении http://www.cyberforum.ru/cpp-beginners/thread241378.html
a.x < b.x || a.x == b.x && a.y < b.y как это понять: как (a.x < b.x || a.x == b.x) && a.y < b.y или a.x < b.x || (a.x == b.x && a.y < b.y) Можно ли это заменить a.x <= b.x && a.y < b.y ?
C++ Перегрузка операторов >>, << Помогите перегрузить операторы ввода и вывода в классе Time. (Я совсем-совсем новичек...)Заранее всем спасибо.class Time { friend ostream &operator<<(ostream &, const Time &); friend istream... http://www.cyberforum.ru/cpp-beginners/thread241375.html
меню сортировок C++
Первый case работает хорошо.а два последних не хотят... #include<iostream> #include<ctime> using namespace std; void main() { srand(time(0)); setlocale(0,"rus"); cout<<" Вариант a - для...
птички C++
на дереве сидит n(0<n<1000000)птичек .они по очереди поют натуральные цифра,начиная 1-го.во время каждой следующей песни улетает то количество птичек,какое число они поют.если количество оставшихся...
C++ Поскорее бы. http://www.cyberforum.ru/cpp-beginners/thread241345.html
Точно условие не помню но суть в том что вводится с клавы логическое выражение. например А и Б и (В или С) только или, и и остальные условия тоже буквы. Надо решить выражение. Это на стэки и строки...
C++ Класс "Окружность" с данными центр и радиус окружности. Вычислить длину и площадь окружности. Объявить класс и определить для него конструктор по умолчанию, конструктор инициализации. Определить функции-члены класса для ввода и вывода членов-данных внутри объявления класса, функции расчета.... подробнее

Показать сообщение отдельно
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
13.02.2011, 14:07
Что увидел при первом просмотре:
  1. Можно сделать отдельную функцию для копирования, чтобы не повторять два раза один и тот же цикл в конструкторе копирования о операторе присваивания.
  2. В функции «erase(iterator &)» не нужна ссылка.
  3. Функцию «erase(iterator, iterator)», мне кажется, можно усовершенстовать: не удалять элементы по одному, а переприсвоить соответствующие указатели на крайних узлах и удалить ненужные узлы всем скопом. Правда, всё равно придётся посчитать расстояние между итераторами, но всё равно должно быть побыстрее.
  4. Функция «swap()» должна обменивать только указатели на корневые узлы и размеры списков, т.е. работать за константное время.
  5. Итератор списка в СБШ не умеет продвигаться более, чем на одну позицию в каждую сторону, т.е. не имеет арифметических операторов, кроме ++ и --.
  6. В функции «reverse_iterator rbegin()» опечатка: должно быть --.
  7. И, кстати, можно использовать std::reverse_iterator.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru