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

реализация итератора - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ результат сложения двух соседних чисел в последовательности http://www.cyberforum.ru/cpp-beginners/thread956757.html
Здравствуйте! Помогите пожалуйста, нужно задачу на завтра сделать, никак не дойдет как. Объясните если не трудно Ввести с клавиатуры последовательность чисел и вывести результат сложения двух...
C++ Анализатор строки Программа должна обработать строку AA;AA(AA;AA) из файла и вывести что все нормально. Но у меня не получается. Действия выполняются рекуривно т.е. функции вызывают друг друга. Вот код. Посмотрите... http://www.cyberforum.ru/cpp-beginners/thread956746.html
Дописать программу с использованием пользовательской функции C++
Помогите переписать эту программу, но уже с пользовательской функцией! #include <vcl.h> #include <tchar.h> #include <iostream.h> #include <math.h> #include <conio.h> void main(void) {...
Чтение файла через API C++
Доброго времени суток! Создаю здесь тему повторно т.к в разделе Win Api никто не читает изменил код для удобства. Помогите разобраться почему не читает файл. Файл создал правой кнопкой мыши, txt...
C++ Очень нужны таблицы с расшифровкой бинарного кода следующих форматов http://www.cyberforum.ru/cpp-beginners/thread956716.html
Задали задание: нужно выбрать какой-то формат файла, открыть его в двоичном виде через File manager, попытаться найти в интернете так сказать расшифровку к этому двоичному коду и полностью...
C++ Кто знает какая ошибка в проге Кто может помочь чем-нибудь Реализуйте алгоритмы методов нахождения корней нелинейного уравнения заданного согласно варианту и вычислите все его корни в заданном диапазоне. Входными данными... подробнее

Показать сообщение отдельно
Анд_Рей
3 / 4 / 0
Регистрация: 27.12.2009
Сообщений: 163

реализация итератора - C++

18.09.2013, 00:54. Просмотров 1018. Ответов 1
Метки (Все метки)

Реализация класса List и его итератора:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#ifndef LIST_H
#define LIST_H
 
#include<iostream>
 
template<class T>
class List
{
private:
    struct Node
    {
        T data;
        Node *next;
    };
    Node *head;
    Node *last;
 
    int length;
public:
    class Iterator
    {
    private:
        Node *head;
    public:
        Iterator(Node *head) { this->head = head; }
        Iterator operator++(int) { Iterator itr = *this; head = head->next; return itr; }
        T& operator*() { return head->data; }
        bool operator==(const Iterator &itr) { return head->data == itr.head->data; }
        bool operator!=(const Iterator &itr) { return head->data != itr.head->data; }
    };
 
    List()
    {
        head   = NULL;
        length = 0;
    }
 
    Iterator begin() const { return Iterator(head); }
    Iterator end() const { return Iterator(last); }
 
    void push(const T &data);
 
    void push_end(const T &data);
 
    T pop();
 
    void print();
 
    int size();
 
};
 
#endif
А вот пример с ошибкой
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream>
#include<string>
#include"List.h"
 
 
void main()
{
    List<std::string> list;
    
    list.push("World");
    list.push("Hello");
 
    for(List<std::string>::Iterator i = list.begin(); i!=list.end(); i++) //"World" не выводится
    {
        std::cout << *i << " ";
    }
    std::cout << std::endl;
 
    getchar();
}
В итераторе класса List содержится логическая ошибка:последний элемент списка НЕ выводится на экран!
Логически я понимаю в чем проблема:когда выражение метод интератора
C++
1
bool operator!=(const Intetator &itr) { return head->data != itr->data; }
вернет false цилк прекратится.
Как это справить ума не приложу!Помогите пожалуйса!
Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.