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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
#1

Шаблоны, ассоциативний массив map - C++

27.12.2009, 13:42. Просмотров 666. Ответов 1

делаю задания из книжки Страуструпа по C++ надо сделать шаблон для ассоциативного массива map, используя vector. сначала написал не шаблонный map, все работало. Потом переписал код что бы получился шаблон, и мне тут же компилятор стал ругаться на "vector<Piar>::iterator I", а я этом ничего не менял. Нашел сайт где все про стандартные контейнеры расписано, но он мне не помог. Уже второй день ищу ошибку помогите пожалуйста.
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
#include <iostream>
#include <conio.h>
#include <string>
#include <vector>
using namespace std;
 
template<class V,class W> class Map{
      struct Piar{
             V name;
             W info;
             Piar(V vv,W ww):name(vv),info(ww){};
      };
      vector <Piar> vec;
      public:
             W &operator[](const V &vv)
             {                             
                    for (vector<Piar>::iterator I=vec.begin(); I!=vec.end();I++) //тут ошибка
                        if(I->name == vv) return I->info;
                    vec.push_back(Piar(vv,0));
                    return vec.back().info;
             }
             W &operator[](V &vv)
             {
                    for (vector<Piar>::iterator I=vec.begin();I!=vec.end();I++) //тут ошибка
                        if(I->name ==vv) return I->info;
                    vec.push_back(Piar(vv,0));
                    return vec.back().info;
             }
             void print_all()
             {
                  int i=0;
                  for (vector<Piar>::iterator I=vec.begin();I!=vec.end();I++) //тут ошибка
                  {
                      i++;
                      cout << "[" << I->name << "] = " << I->info << endl;
                      if (i==20){getch(); i=0;}
                  }
             }
};
 
int main()
{
    Map<string,double> E;
    getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2009, 13:42     Шаблоны, ассоциативний массив map
Посмотрите здесь:

C++ Одномерные массив (Шаблоны функций)
C++ map<> в C, не в C++!
C++ Массив. Макс и мин элемент.Шаблоны и функции.
C++ Двумерный Массив.Шаблоны функции(отладить).
ассоциативный массив MAP хранящий указатели на векторы определенной структуры C++
C++ ассоциативный массив map c двумерным массивом
Двумерный динамический массив. Шаблоны C++
C++ Шаблоны функций и двумерный массив
STL(map). Где инициализировать массив? C++
C++ Возожно ли создать массив указателей на шаблоны функций?
Шаблоны функций и массив указателей C++
C++ Map of map

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1931 / 1540 / 141
Регистрация: 31.05.2009
Сообщений: 2,905
28.12.2009, 13:59     Шаблоны, ассоциативний массив map #2
[Решено][C++] Как тут можно "схитрить" и скомпилировать такой код?
Yandex
Объявления
28.12.2009, 13:59     Шаблоны, ассоциативний массив map
Ответ Создать тему
Опции темы

Текущее время: 18:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru