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

Ассоциативный массив - C++

Восстановить пароль Регистрация
 
AntonGlebov
0 / 0 / 0
Регистрация: 29.12.2012
Сообщений: 13
05.06.2014, 15:29     Ассоциативный массив #1
Добрый день.
Нужно заполнить map <char,vector<int> > из файла, содержание которого:
1 f
2 g
5 c
Вот моя программа
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 <fstream>
#include <vector>
#include <map>
#include <string>
#include <utility>
#include <limits>
#include <cstdlib>
 
using namespace std;
 
template < typename T >
ostream & operator<< (ostream & stream , const vector<T> & obj )
{
    for ( typename vector<T>::const_iterator it = obj.begin() , itEnd = obj.end() ; it!=itEnd ; ++it )
{
    stream << *it << ' ' ;
}
return stream ;
}
 
int main()
{
 
     ifstream f("prov.txt");
     map <char,vector<int> > table;
     map <char,vector<int> >::iterator it;
     while (f) {
         int num;
         char c;
 
         f >> num >> c;
 
         vector<int> data;
         data.reserve(1);
         data.push_back(num);
 
         table.insert(make_pair(c, num));
     }
 
      for (it = table.begin(); it != table.end(); ++it) {
          cout << it->first << it->second <<endl;
      }
    f.close();
}
На выходе получаю:
с0 0 0 0 0
f0
g0 0
т.е буквы выводит правильно, а вместо пяти выводит пять нулей и т.д.
Как это исправить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2014, 15:29     Ассоциативный массив
Посмотрите здесь:

C++ ассоциативный массив
C++ Ассоциативный массив в С++ (типо пэхапе)
динамический ассоциативный массив C++
Ассоциативный массив C++
C++ Ассоциативный массив
Ассоциативный массив C++
C++ Ассоциативный массив на префиксных деревьях
C++ Ассоциативный массив своими руками

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5943 / 5548 / 1783
Регистрация: 18.12.2011
Сообщений: 14,167
Завершенные тесты: 1
05.06.2014, 15:45     Ассоциативный массив #2
Цитата Сообщение от AntonGlebov Посмотреть сообщение
f >> num >> c;
После ввода символа указатель потока ввода стоит на символе "Конец строки".
Если далее Вы читаете символ, то прочитается как раз конец строки,
если число - то конец строки пропускается как пробельный элемент
и читается число со следующей строки!
AntonGlebov
0 / 0 / 0
Регистрация: 29.12.2012
Сообщений: 13
05.06.2014, 16:13  [ТС]     Ассоциативный массив #3
zss, Мне хотелось, чтобы вместо с0 0 0 0 0 вывелось с5, вместо f0 вывелось f1, вместо g0 0 вывелось g2. Тут наверное в другом проблема?
Yandex
Объявления
05.06.2014, 16:13     Ассоциативный массив
Ответ Создать тему
Опции темы

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