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

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

Восстановить пароль Регистрация
 
Aye Aye
 Аватар для Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
27.12.2009, 13:42     Шаблоны, ассоциативний массив map #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++ Одномерные массив (Шаблоны функций)
ассоциативный массив MAP хранящий указатели на векторы определенной структуры C++
C++ ассоциативный массив map c двумерным массивом
Двумерный динамический массив. Шаблоны C++
C++ Шаблоны функций и двумерный массив
STL(map). Где инициализировать массив? C++
Шаблоны функций и массив указателей C++
C++ Как вставить map в map

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

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

Метки
map, ассоциативный массив, шаблонный класс
Опции темы

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