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

Итератор для собственного контейнера - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Динамические структуры данных http://www.cyberforum.ru/cpp-beginners/thread574161.html
1.Разработайте динамическую структуру для решения задачи. Последовательность чисел Фибоначчи задается по закономерности: f1 = 1, f2 = 1, ..., fn = fn-1 + fn-2. Распечатайте n чисел Фибоначчи в следующем порядке: сначала все четные, затем все нечетные элементы. 2. Разработайте динамическую структуру для решения задачи. Даны целые числа p и q. Получить все делители числа q, взаимно простые с...
C++ Шаблон очереди + шаблон записи? Реализовать шаблон класса Ocher, реализующий однонаправленную очередь. Для представления элемента очереди использовать шаблон класса Node. Определить функции добавления элемента в очередь и поиска в очереди заданной информации. Задачу №2 написать в двух вариантах: 1) в первом варианте задачу реализовать просто как шаблонный класс; 2) во втором варианте задачу реализовать как класс... http://www.cyberforum.ru/cpp-beginners/thread574135.html
Стирать в Series определенные точки C++
Такой вопрос возник. Можно ли как то стирать на графике в Series определенный кусок графика? А то функция Clear() очищает соответсвенно весь график.
Рекурсия (вычисления интеграла) C++
Есть программа которая вычисляет интеграл методом трапеции и Симпсона, надо усовершенствовать код чтобы функции вычисляли интеграл рекуррентным способом(сделать их рекурсивными) Код: #include "stdafx.h" #include <iostream> #include <stdlib.h> #include <math.h> #include <conio.h> using namespace std; //Определяем константы #define a 0
C++ Плюсы и минусы http://www.cyberforum.ru/cpp-beginners/thread574084.html
В массиве Z(m) найти число чередований знака, то есть число переходов с плюсов на минус или с минуса на плюс. Например, в последовательности 0, -2, 0, -10, 2, -1, 0, 0, 3, 2 ,-3 четыре чередования (как известно, нуль не имеет знака).
C++ Нужны imagehlp.lib Нужны imagehlp.lib для Visual studio 2010, пакет SDK целиком устанавливала, но программа все равно не работает, выдает ошибку подробнее

Показать сообщение отдельно
vaselo
19 / 19 / 1
Регистрация: 17.10.2010
Сообщений: 247
14.05.2012, 19:40  [ТС]     Итератор для собственного контейнера
сменил, но... те же ошибки


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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#include "stdafx.h"
#include <iostream>
#include <map>
#include <algorithm>
using namespace std;
 
template <class Type> class mas
{
    map <int, Type> m;  
    Type* makeptr(unsigned int ind)
    {
    return  &m.find(ind)->second;
    }   
    Type& make(unsigned int ind)
    {
        if( m.find(ind)!=End())
            return m.find(ind)->second;
        else 
        {
            Type something;
             m.insert(pair<int,Type>(index,something));
            i=m.find(index);
        }
    }
    mas (const mas& source)
    {
        m=source.m;
    }
    unsigned int minindex()
    {
        int index=m.begin()->first;
        for(typename map<int,Type>::iterator iterat=m.begin();iterat!=m.end();iterat++)
                    if(index>iterat->first)
                         index=iterat->first;
        return index;
    }
    unsigned int maxindex()
    {
        int index=m.begin()->first;
        for(typename map<int,Type>::iterator iterat=m.begin();iterat!=m.end();iterat++)
                    if(index<iterat->first)
                         index=iterat->first;
        return index;
    }
public:
    class iterator
    {
    public:
      typedef Type value_type;
      typedef Type* pointer;
      typedef ptrdiff_t difference_type;
      typedef Type& reference;
      typedef std::random_access_iterator_tag iterator_category;
 
      unsigned int index;
      mas<value_type>* ptr;
      public:
      pointer operator++()
      {
          return ptr->makeptr(index++);
      }
      iterator operator--()
      {
         return ptr->makeptr(index--);
      }
      reference operator*() {return ptr->make(index);}
      pointer operator->()  {return ptr->makeptr(index);}
      bool operator==(const iterator& other) const {return index == other.index; }
      bool operator!=(const iterator& other) const {return !(index == other.index); }
      bool operator<(const  iterator other){return index<other.index;}
      bool operator<=(const iterator other){return index<=other.index;}
      bool operator>(const  iterator other){return index>other.index;}
      bool operator>=(const iterator other){return index>=other.index;}
      pointer operator+ (const int n){return ptr->makeptr(index+n);}
      pointer operator- (const int n){return ptr->makeptr(index-n);}
      pointer operator+=(const int n){return ptr->makeptr(index+=n);}
      pointer operator-=(const int n){return ptr->makeptr(index-=n);}
      reference operator[](int i){return ptr->make(i);}
      operator int(){return index;}
      iterator(int a,mas<value_type>* p)
    
      {
          ptr=p;
          index=a;
      }
   };
    friend class mas::iterator;
   mas(){}
   Type& operator [](int index)
   {
      typename map<int,Type>::iterator i=m.find(index);
      if(i==m.end())
      {
         Type something;
         m.insert(pair<int,Type>(index,something));
         i=m.find(index);
      }
      return i->second;; 
   }
   iterator begin()
   {
       mas::iterator it(minindex(),this);
       return it;
   }
   iterator end()
   {
       mas::iterator it(maxindex()+1,this);
       return it;
   }
};
 
void  fun (int a)
{
    cout << a << " ";
}
int main()
{
    mas <int> mass;
    for(int i=0;i<9;)
        cin>>mass[i++];
    sort(mass.begin(),mass.end(),fun);
    //for(mas<int>::iterator i=mass.begin();i<mass.end();++i)   
     // cout << *i <<" ";
    cout << endl;
    system("pause");
}
 
Текущее время: 10:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru