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

Как реализуется типичный итератор? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Чтение файла http://www.cyberforum.ru/cpp-beginners/thread992284.html
Доброго времени суток. Пишу программу которая может читать каждый символ файла. #include<iostream> #include<fstream> #include<stdio.h> #include<conio.h> //void funk(char); using namespace std; int main()
C++ Напишите программу для нахождения суммы / произведения заданного ряда y=(1/a+1/2*a+1/3*a+...+1/n*a) #include<iostream> #include<cmath> #include <conio.h> #include <stdlib.h> using namespace std; int main() { setlocale(0,"Rus"); cout<<"Дано вещественное a и натуральное n"<<endl; http://www.cyberforum.ru/cpp-beginners/thread992282.html
Создать класс Model Window для работы с моделями экранных окон C++
Помогите написать программу...Создать класс Model Window для работы с моделями экранных окон. В качестве полей задаются: заголовок окна, координаты левого верхнего угла, размер по горизонтали, размер по вертикали, цвет окна, состояние «видимое/невидимое», состояние «с рамкой/без рамки». Координаты и размеры указываются в целых числах. Реализовать операции: передвижение окна по горизонтали, по...
C++ Мама купила в магазине полкилограмма масла, S граммов сыра, М кг муки и В кг К граммов конфет. Определить вес всех покупок в килограммах
#include<iostream> using namespace std; int main() { setlocale(0,"Rus"); float a,b,c,f,v; cout<<"Введите массу покупок в магазине :"<<endl; cout<<"Cыра- "; cin>>a; cout<<" грамм"<<endl;
C++ Напишите программу для нахождения самой короткой стороны треугольника с вершина-ми A (X1, Y1), B (X2, Y2), C (X3, Y3) http://www.cyberforum.ru/cpp-beginners/thread992264.html
#include<iostream> #include<cmath> #include <conio.h> #include <stdlib.h> using namespace std; int main() { setlocale(0,"Rus"); float x1,x2,y1,y2,z1,z2;
C++ Случайное предсказание Помогите пожалуйста. Нужно составить программу случайного предсказания 1 из 10 ближайшего будущего, с шансом на неудачу. Используя оператор switch\switch-case подробнее

Показать сообщение отдельно
ForEveR
В астрале
Эксперт С++
7968 / 4730 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
30.10.2013, 16:29     Как реализуется типичный итератор?
Buckstabue, Вложенный класс не обязательное условие. Просто в классе, который использует итератор должен быть typedef.

Добавлено через 8 минут
Хотя на самом деле, если не хочется много писать можно поюзать boost::iterator_adaptor/boost::iterator_facade
http://www.boost.org/doc/libs/1_54_0...de-and-adaptor

Добавлено через 11 минут
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
template<typename T>
class list_iterator : public boost::iterator_facade
<
   list_iterator<T>, ListNode<T>, boost::forward_traversal_tag
>
{
public:
   list_iterator() : cur_node(0) {}
   list_iterator(ListNode<T>* node) : cur_node(node) {}
private:
   friend class boost::iterator_core_access;
   void increment()
   {
       cur_node = cur_node->Next;
   }
   bool equal(const list_iterator& rhs) const
   {
       return cur_node == rhs.cur_node;
   }
   ListNode<T>& dereference() const
   {
       return *cur_node;
   }
   
   ListNode<T>* cur_node;       
};
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru