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

Классы - C++

Восстановить пароль Регистрация
 
Irina Izotova
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 17
10.10.2013, 13:57     Классы #1
программа ругается на std::getline подскажите как это исправить. Файл с заданием по которому написана программа и окна с ошибками вложены ниже
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <algorithm>
#include <string.h>
 
class node {
public:
    char ch; // символ (в примере - a1)
    node *next; //указатель на следующий элемент в списке
};
 
const int maxn = 100; // максимальное размер массива указателей
 
int main() {
    std::string str;
    std::getline(std::cin, str);
    node *left; // left - самый левый элемент в списке
    left = NULL;
    node *arr[maxn] = {NULL}; // массив указателей
    int temp[maxn] = {0}; // массив, где будем хранить длины цепочек
    char ch = str[0]; // считаем что вся строка начинается с символа a1
    int cur = 0;
    int len = 0; // текущая длина списка
    int idx = 0; // элемент в массиве указателей, на котором остановились
    for (int i = 0; i < str.size(); ++i) { // идем по считаной строке
        if (str[i] == ch) {
            ++cur;
            if (cur > len) { // добавляем элемент в список
                if (left == NULL) { // т.е. список еще пуст
                    left = new node;
                    left->ch = ch;
                    left->next = NULL;
                } else { // иначе добавляем элемент слева
                    node *tmp = new node;
                    tmp->ch = ch;
                    tmp->next = left;
                    left = tmp;
                }
                ++len;
            }
        } else if (cur > 0) { // т.е. текущая цепочка закончилась, запоминаем ее длину
            temp[idx++] = cur;
            cur = 0;
        }
        if (i == str.size() - 1 && str[i] == ch)
            temp[idx++] = cur;
    }
    std::sort(temp, temp + idx); // сортируем массив длин цепочек по позрастанию
    std::reverse(temp, temp + idx); // переворачиваем его, т.к. нам нужно по убыванию
    //теперь расставим указатели, начиная от указателя left
    for (int i = 0; i < idx; ++i) {
        node *tmp = left;
        for (int j = 0; j < len - temp[i]; ++j)
            tmp = tmp->next;
        arr[i] = tmp;
    }
    node *tmp = left;
    while (tmp != NULL) {
        std::cout << tmp << " ";
        tmp = tmp->next;
    }
    std::cout << std::endl;
    for (int i = 0; i < len; ++i)
        std::cout << arr[i] << " ";
    return 0;
}
Миниатюры
Классы   Классы  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2013, 13:57     Классы
Посмотрите здесь:

C++ классы
классы C++
Классы C++
Классы C++
C++ классы с++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xanderfomin
40 / 37 / 8
Регистрация: 25.10.2012
Сообщений: 112
10.10.2013, 14:08     Классы #2
По меньшей мере, нужно добавить
C++
1
#include <iostream>
Irina Izotova
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 17
10.10.2013, 14:23  [ТС]     Классы #3
Цитата Сообщение от xanderfomin Посмотреть сообщение
По меньшей мере, нужно добавить
C++
1
#include <iostream>
это есть. не скопировала верхнюю строку. Но проблему это не решает.
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
10.10.2013, 16:17     Классы #4
getline не является ф-й из пространства std. Уберите префикс нахрен.

Добавлено через 24 минуты
p.s.А где задание №6
castaway
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,012
Записей в блоге: 10
Завершенные тесты: 1
10.10.2013, 17:15     Классы #5
Цитата Сообщение от Ilot Посмотреть сообщение
getline не является ф-й из пространства std. Уберите префикс нахрен.
Ну как же? getline
Yandex
Объявления
10.10.2013, 17:15     Классы
Ответ Создать тему
Опции темы

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