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

Библиотека STL, класс ЛИСТ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вылезает ошибка! http://www.cyberforum.ru/cpp-beginners/thread136740.html
// Test.cpp: главный файл проекта. #include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; void func(char*);
C++ Двухмерный масив Всем привет!) Вот задали задачку.. никак не могу ее решить...(( Кто может помогите...)) буду благодарен..)) Условие: Из двухмерного массива Асоздать массив K элементами которого являются отсортированные элементы по убыванию побочной диагонали. http://www.cyberforum.ru/cpp-beginners/thread136739.html
C++ работа с файлами
1. Дан текстовый файл, фразы в котором отделены друг от друга точками, а слова – пробелами и знаками препинания. Удалить из этого файла все фразы, содержащие слово «мама». как сравнивать слово мама?? Добавлено через 2 часа 19 минут ап ап ап
Заменить расположение элементов в файле C++
Дан файл целых чисел с элементами A1, A2, …, AN (N — количество элементов в файле). Заменить исходное расположение его элементов на следующее: A1, AN, A2, AN–1, A3, … . Подскажите пожалуйста, как написать. Какие функции можно использовать и как можно изменить расположение собственно)) Заранее - спасибо!! Добавлено через 2 часа 39 минут Ребят!...
C++ Объединения (union) http://www.cyberforum.ru/cpp-beginners/thread136690.html
Имеется задача: (Нужно выполнить решения, используя объединения.) Ввести с клавиатуры два произвольных символа. Составить число типа short, байты которого совпадают с кодами введённых символов. Ввести с клавиатуры ещё два символа. Получить второе число типа short аналогично первому. Распечатать большее из чисел. Числа и символы распечатать в шестнадцатеричной системе счисления. А с какой...
C++ Изменение размера контейнера для вывода графики Вывожу график через DrawLine в richTextbox, из за большого числа точек и не весь график влезает в контейнер. Можно ли как нибудь реализовать возможность прокрутки в этом контейнере ,чтобы пользователь мог просмотреть график целиком пользуясь полосами прокрутки подробнее

Показать сообщение отдельно
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
28.05.2010, 23:42     Библиотека STL, класс ЛИСТ
вот...
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
#include <iostream>
#include <string>
#include <list>
 
struct Student
{
    std::string facultet;
    std::string institute;
    std::string FIO;
    int grup_number;
    int za4et_number;
    int year;
};
 
typedef std::list<Student> StudentList;
typedef std::list<Student>::iterator IterStudentList;
typedef std::list<Student>::const_iterator ConstIterStudentList;
 
void Print(const StudentList& List)
{
        std::cout<<"\n"<<"============================="<<"\n";
 
        for(ConstIterStudentList iStudent = List.begin(); iStudent != List.end(); ++iStudent)
        {
            std::cout << "FIO -> ";
            std::cout << iStudent->FIO << std::endl;
            std::cout << "got ro}I{denia -> ";
            std::cout << iStudent->year << std::endl;
            std::cout << "nomer za4etki -> ";
            std::cout << iStudent->za4et_number << std::endl;
            std::cout << "institut -> ";
            std::cout << iStudent->institute << std::endl;
            std::cout << "facultet -> ";
            std::cout << iStudent->facultet << std::endl;
            std::cout << "nomer gruppu-> ";
            std::cout << iStudent->grup_number << std::endl;
 
            std::cout<<"-----------------------------"<<"\n";
        }
 
        std::cout<<"============================="<<"\n";
}
 
 
char MainMenu()
{
    system("cls");
 
    std::cout << "Menu:"  << std::endl;
    std::cout << "\t 1. Add info to list (to head )" << std::endl;
    std::cout << "\t 2. Add info to list (to end)" << std::endl;
    std::cout << "\t 3. Add info in list with some position" << std::endl;
    std::cout << "\t 4. Delete info  (for elements numbers)" << std::endl;
    std::cout << "\t 5. Delete all info (Cleaning list)" << std::endl;
    std::cout << "\t 6. Print list" << std::endl;
    std::cout << "Vvedite nomer deistvia i najmite <Enter>: ";
    char item = 0;
    std::cin >> item;
 
    return item;
}
 
Student DataInput()// Ввод данных
{
        Student student;
        std::cout << "Dannie o studente: " << std::endl;
        std::cout << "FIO : ";
        std::cin.ignore();
        std::getline(std::cin, student.FIO);
        std::cout << "got ro}I{denia : ";
        std::cin >> student.year;
        std::cout << "nomer za4etki: ";
        std::cin >> student.za4et_number;
        std::cout << "institut: ";
        std::cin.ignore();
        std::getline(std::cin, student.institute);
        std::cout << "facultet : ";
        std::cin.ignore();
        std::getline(std::cin, student.facultet);
        std::cout << "fnomer gruppu: ";
        std::cin >> student.grup_number;
        //std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
        return student;
}
 
int main()
{
        size_t n = 0;
        StudentList studentList;
 
        char answer = 'y';
        while(answer == 'y')
        {
            switch ( MainMenu() )
            {
                case '1':
                    studentList.push_front( DataInput() );
                    break;
 
                case '2':
                    studentList.push_back( DataInput() );
                    break;
 
                case '3':
                    std::cout << "Vvedite nomer pozicii dlia vstavki: ";
                    std::cin >> n;
                    if( n >= studentList.size() )
                    {
                        std::cout << "V spiske net zapisi pod nomerom " << n << std::endl;
                    }
                    else
                    {
                        IterStudentList iterStudent = studentList.begin();
                        std::advance(iterStudent, n);
                        studentList.insert( iterStudent, DataInput() );
                    }
                    break;
 
                case '4':
                    std::cout << "Vvedite nomer pozicii dlia udalenia: ";
                    std::cin >> n;
 
                    if( n >= studentList.size() )
                    {
                        std::cout << "V spiske net zapisi pod nomerom " << n << std::endl;
                    }
                    else
                    {
                        IterStudentList iterStudent = studentList.begin();
                        std::advance(iterStudent, n);
                        studentList.erase(iterStudent);
                    }
                    break;
 
                case '5':
                    studentList.clear();
                    break;
 
                case '6':
                    Print(studentList);
                    break;
 
                default:
                    std::cout << "Takogo punkta menu ne sushestvuet." << std::endl;
                    break;
            }
            std::cout << "Continue?(input 'y' to continue or any other key to quit) ";
            //std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
            std::cin >> answer;
        }
 
        std::cout << "\n Thats all!!!\n\n";
 
        return 0;
}
Это на основе программы из первого поста. Правильность ввода данных не проверяется. Кроме добавления в список и печати, больше ничего не проверял, так что смотрите сами...
 
Текущее время: 19:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru