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

Итератор и его контейнер - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ двумерный массив http://www.cyberforum.ru/cpp-beginners/thread134514.html
Подскажите пожалуйста, как задать двумерный массив с клавиатуры.
C++ Шаблон двусвязного списка Привет Помогите розобратса с шаблонами вот я написал код списка двусвязного но без шаблонов #include<iostream> using namespace std; struct node { int elem; node *sled; node *pred; http://www.cyberforum.ru/cpp-beginners/thread134511.html
обход шахматной доски конём C++
Задание: составить программу на c++, вычисляющую при каких значениях m и n, существует маршрут коня по всем полям шахматной доски m x n, с посещением каждой клетки по одному разу. помогите решить...
C++ Работа с файлами
Дан файл, содержащий какой-то текст. Найти в нем слова, начинающиеся на заданную букву (буква вводится). Результат вывести в виде таблицы из одной строки.
C++ Строки http://www.cyberforum.ru/cpp-beginners/thread134506.html
Дана строка. Удалите из неё все слова с нечётными номерами.
C++ Двумерный массив В квадратной матрице поменять местами элементы, симметричные относительно главной диагонали подробнее

Показать сообщение отдельно
insideone
Модератор
Автор FAQ
3642 / 921 / 50
Регистрация: 10.01.2010
Сообщений: 2,477
24.05.2010, 17:35  [ТС]
Цитата Сообщение от Roma_F Посмотреть сообщение
так от туда же, откуда и информацию о следующем/предыдущем элементе,
то есть ...->_next = _it_end;
Вот мой итератор
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
template <class datatype>
class iterator{
friend class List;
    Node* Current;
    Node* getNode()         {   return Current; };
public:
    iterator(Node* newCurrent = NULL):Current(newCurrent) {};
 
    iterator& operator ++()     {   if ( Current != NULL ) Current = Current->Next; return *this;   }
    iterator& operator --()     {   if ( Current != NULL ) Current = Current->Prev; return *this;   }
    iterator& operator ++(int)  {   if ( Current != NULL ) Current = Current->Next; return *this;   }
    iterator& operator --(int)  {   if ( Current != NULL ) Current = Current->Prev; return *this;   }
            
 
    bool ref_swap(iterator& other);
            
    datatype& operator * ();
    datatype* operator -> ();
    operator datatype&();
 
    // Итератор не указывает на данные если empty вернет true
    bool empty() {  return (Current == NULL || Current->Data == NULL);  };
    // Итератор содержит правильный нод если full вернет true
    bool full() { return Current != NULL; };
}; typedef iterator<datatype> it;
Нод:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    class Node{
    public:
        Node    *Prev, *Next;
        void* Data;
    
        Node(void* newData = NULL, Node* newPrev = NULL, Node* newNext = NULL)
            :Data(newData), Prev(newPrev), Next(newNext){};
 
        Node* set(Node* newPrev, Node* newNext){
            Prev = newPrev;
            Next = newNext;
        return this;
        }
    };
Или нод ещё должен указывать на начало списка?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru