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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ строки и файлы http://www.cyberforum.ru/cpp-beginners/thread80487.html
Я не знаю язык С++. Точнее я не знаю операторы которые выполняют те или иные функции. Так преподают в ВУЗе, что есть практика а вот с теорией плохо, точнее вообще никак. От нас требуют срочно решить три задачи: 1) Дана последовательность слов длиной до десяти символов каждое, разделенных пробелами. Найти слово с максимальной длиной. 2) Дан текстовый файл F. Переписать в другой файл G все...
C++ Сформировать массив С, i-ый элемент которого равен количеству элементов в i-ой строке матрицы, превышающих по модулю число 100. дана матрица А. Сформировать массив С, i-ый элемент которого равен количеству элементов в i-ой строке матрицы, превышающих по модулю число 100. http://www.cyberforum.ru/cpp-beginners/thread80471.html
C++ Функции на языке С
Файл содержит целые числа. Заменить все числа, представляющие число три в целочисленной степени сочетанием 3^n (где n – степень). Например: 9 – 3^2, 27 – 3^3 Помогите пожалуйста решить....
Функции на языке С C++
Файл содержит целые числа. Вычислить сумму значений из файла, в двоичном представлении которых K разрядов установлено в единицу. Помогите решить задачу!!!!!
C++ Вопрос чайника http://www.cyberforum.ru/cpp-beginners/thread80462.html
Когда я выполняю программу #include <iostream> using namespace std; int main() { cout <<"C++"<<endl; return 0; } она включается на долю секунды, а потом сама же выключается. Может там надо что-то типо Паскалевского readln?
C++ работа со стеком. ввод символов и их обработка. вычисление постфиксных выражений Задача: Вычисление постфиксных выражений (работа со стеком) Постановка задачи: Постфиксное выражение являет собой символьную строку, которая состоит из цифр, пробелов и знаков арифметических операций (+,-,*,/,%). Строка заканчивается нулевым символом (`\0`) и вводится пользователем. Необходимо написать функцию, которая вычисляет значение этого выражения. Алгоритм ее работы состоит в том,... подробнее

Показать сообщение отдельно
Aye Aye
 Аватар для Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
27.12.2009, 13:42     Шаблоны, ассоциативний массив map
делаю задания из книжки Страуструпа по 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();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru