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

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

Войти
Регистрация
Восстановить пароль
 
AntonGlebov
0 / 0 / 0
Регистрация: 29.12.2012
Сообщений: 13
#1

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

05.06.2014, 15:29. Просмотров 415. Ответов 2
Метки нет (Все метки)

Добрый день.
Нужно заполнить 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++
Добрый день. Есть массив map&lt;char,vector&lt;bool&gt; &gt; table; Как пройтись по этому массиву итератором, чтобы вывести содержимое на экран? ...

Ассоциативный массив - C++
Простите за нубский вопрос, но гугл мне не помог( Нужно реализовать список радиочастот и названий радио. Получается нужен...

Ассоциативный массив - C++
Пытаюсь написать что-то вроде ассоциативного массива, но проверка показывает, что не всё правильно добавляется (метод Add). void...

ассоциативный массив - C++
мне нужно написать прграмму с динамическими шаблонными структурами, а именно с ассоциативным массивом, но что он из себя представляет, я...

Ассоциативный массив - C++
Задача будет такая: с платы (AFDX) считываются данные в таком формате: индекс 9 байт и сами данные 1500байт. &quot;Индекс&quot; на самом деле в себя...

динамический ассоциативный массив - C++
Подскажите как организовать ассоциативный массив в виде динамической структуры для класса template &lt;class T&gt; class el { ...

Ассоциативный массив в С++ (типо пэхапе) - C++
Где можно посмотреть такой класс? Сделал такое, но пространства имен не изучал еще. Как сделать так что бы можно было написать: ...

Ассоциативный массив на префиксных деревьях - C++
Подскажите, существует ли контейнер или готовый класс, типа map, но основанный на префиксных деревьях? Нужно для быстрого поиска ключа. Я...

Ассоциативный массив с несколькими индексами - C++
Есть структура: struct DATA { int key1; int key2; char *pData; }; Необходим массив таких структур с быстрым...

Модули. Ассоциативный массив. (DLL, EXE) - C++
Добрый день, нужна помощь в следующем задании: написать программу. программа состоит из двух модулей (не понимаю, как они...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,181
Завершенные тесты: 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. Тут наверное в другом проблема?
Ответ Создать тему
Опции темы

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