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

Классы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ описать структуру Student http://www.cyberforum.ru/cpp-beginners/thread973841.html
Нужно описать структуру Student, со следующими полями 1. ФИО 2. Номер группы 3. Успеваемость (массив из пяти элементов) Вот мой файл Student.cpp #include "stdafx.h" const int num = 5;
C++ List (STL) не пользуется конструкторами копий базовых классов Ситуация: Производный класс образован от двух базовых. Базовые классы не пустые, в одном хранится ссылка на картинку Grphics::TBitmap, а в другом числовые значения: class Image { private: GTB * mImage; protected: ~Image( void); Image( void); Image( const Image&); http://www.cyberforum.ru/cpp-beginners/thread973814.html
Hash+++ C++
Скажите пожалуйста где скачать Hash subj и Hash on coure it
templates, STL C++
ПЕРВОЕ средства обобщенного программирования в С++ (templates) ВТОРОЕ библиотека STL, контейнеры и алгоритмамы STL в чем разница первого и второго? спасибо.
C++ Задача со звездочками http://www.cyberforum.ru/cpp-beginners/thread973689.html
Пользователь вводит число, а компьютер должен вывести на экран пирамидку, с такой высотой как число Например, пользователь ввел 3 * ** *** ** *
C++ SDL Отображение текста на экране Вывожу на экран текст формата *.ttf c помощью функции TTF_Render Эта функция может выводить только текст, а вот как вывести значение переменной? // *.h struct C_LoadImages { void ttfInit(); inline void ttfQuit() { TTF_CloseFont(font); TTF_Quit(); } подробнее

Показать сообщение отдельно
Irina Izotova
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 17

Классы - C++

10.10.2013, 13:57. Просмотров 204. Ответов 4
Метки (Все метки)

программа ругается на 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;
}
Миниатюры
Классы   Классы  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru