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

Запись таблицы частот из файла в список или ассоциативный массив - C++

Восстановить пароль Регистрация
 
Samchik
0 / 0 / 0
Регистрация: 07.11.2015
Сообщений: 14
Завершенные тесты: 1
20.10.2016, 16:38     Запись таблицы частот из файла в список или ассоциативный массив #1
Всем привет.
Имеется запись таблицы частот в лист.
C++
1
2
3
4
5
6
7
8
9
10
11
12
list < Tree* > Read::frequence(map<char, int> &m) {
    list < Tree* > t;
    ofstream fout("frequence.txt");
    for (map<char, int>::iterator i = m.begin(); i != m.end(); i++) {
        fout << i->first << ":" << i->second << endl;
        Tree *p = new Tree;
        p->c = i->first;
        p->a = i->second;
        t.push_back(p);
    }
    return t;
}
Нужно считать с файла и записать таблицу частот в список или ассоциативный массив.
Файл выглядит так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 :6
!:4
':1
;:1
H:1
I:1
M:1
S:1
T:1
d:2
e:1
g:1
h:1
i:1
l:3
m:1
n:1
o:4
r:3
s:2
t:4
w:1
y:2
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2016, 16:38     Запись таблицы частот из файла в список или ассоциативный массив
Посмотрите здесь:

Ассоциативный массив "ключ - список" C++
C++ ассоциативный массив
Запись из файла *.txt или memo в массив C++
Ассоциативный массив C++
C++ Ассоциативный массив
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4319 / 3740 / 1260
Регистрация: 14.04.2014
Сообщений: 14,670
20.10.2016, 17:21     Запись таблицы частот из файла в список или ассоциативный массив #2
C++
1
2
3
4
5
6
7
8
9
10
11
map<char, int> f;
char c;
int n;
ifstream fin("frequence.txt");
while (fin.get(c))
{
    fin.get(); // ':'
    fin >> n;
    fin.get(); // '\n'
    f[c] = n;
}
Samchik
0 / 0 / 0
Регистрация: 07.11.2015
Сообщений: 14
Завершенные тесты: 1
25.10.2016, 00:06  [ТС]     Запись таблицы частот из файла в список или ассоциативный массив #3
то есть он будет отдельно записывать символ и отдельно частоту ?

Добавлено через 1 минуту
nmcf, то есть он будет отдельно записывать символ и отдельно частоту ?
nmcf
4319 / 3740 / 1260
Регистрация: 14.04.2014
Сообщений: 14,670
25.10.2016, 00:09     Запись таблицы частот из файла в список или ассоциативный массив #4
При чём тут запись? Символ считывается в условии цикла, а число в 8-й строке.
Samchik
0 / 0 / 0
Регистрация: 07.11.2015
Сообщений: 14
Завершенные тесты: 1
25.10.2016, 00:19  [ТС]     Запись таблицы частот из файла в список или ассоциативный массив #5
nmcf,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void Read::OpenFreq(string freq, map<char, int> h) {
    ifstream F(freq);   
    char c;
    int n;
    if (F.is_open()) {
        while (F.get(c))
        {
            F.get(); // ':'
            F >> n;
            F.get(); // '\n'
            h[c] = n;
        }
    }
    else
    {
        cout << "Ошибка открытия файла";
    }
    F.close();
}
что-то я не пойму. сразу перескакивает этот цикл и выходит
nmcf
4319 / 3740 / 1260
Регистрация: 14.04.2014
Сообщений: 14,670
25.10.2016, 08:14     Запись таблицы частот из файла в список или ассоциативный массив #6
Цитата Сообщение от Samchik Посмотреть сообщение
сразу перескакивает этот цикл и выходит
Как ты это определил?

Массив (пустой) должен по ссылке передаваться или быть возвращаемым значением.
C++
1
void Read::OpenFreq(string freq, map<char, int> &h)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2016, 19:58     Запись таблицы частот из файла в список или ассоциативный массив
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Samchik
0 / 0 / 0
Регистрация: 07.11.2015
Сообщений: 14
Завершенные тесты: 1
26.10.2016, 19:58  [ТС]     Запись таблицы частот из файла в список или ассоциативный массив #7
nmcf, ранее в функции был создан map, я его передаю в функцию. а определил перескок по отладке

Добавлено через 19 часов 58 минут
nmcf, Чувак,ты боженька... я доделал
Yandex
Объявления
26.10.2016, 19:58     Запись таблицы частот из файла в список или ассоциативный массив
Ответ Создать тему
Опции темы

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