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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
ququ_smile
1 / 1 / 0
Регистрация: 28.01.2013
Сообщений: 162
#1

Создание стека структур - C++

22.04.2013, 22:45. Просмотров 1671. Ответов 37
Метки нет (Все метки)

Как мне объявить стек структур с помощью <stack> ? Я создал структуру и хотел сделать стек таких структур, но почему-то у меня не получается =( Взгляните сами:
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
#include <iostream>
#include <stack>
 
using namespace std;
 
const int N=100;
 
struct Football
 {
     char fio[10];
     int vozrast;
     int kol_gollov=0;
     double vremya=0;
     char legioner[3];
     double plata=0;
 };
stack <Football> football;
 
int main()
{
    cout<<"Vvedite familiu imya otchestvo"<<endl;
    cin>>Football.fio;
    cout<<"Vozrast"<<endl;
    cin>>football.vozrast;
    cout<<"Kollichestvo golov"<<endl;
    cin>>football.kol_gollov;
    cout<<"Vremya"<<endl;
    cin>>football.vremya;
    cout<<"Yavlyaentsya legionerom? (yes/no)"<<endl;
    cin>>football.legioner;
    cout<<"Zar_plata"<<endl;
    cin>>football.plata;
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2013, 22:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание стека структур (C++):

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

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

Создание стека с односвязным LinkedList - C++
В данной программе требуется создать методы для работы со стеком. (Показать инкапсуляцию в C++) Первый раз пишу на C++, опыта...

Создание стека - код не компилируется - C++
Пытаюсь разобраться с динамическими структурами данных. Списал код, но не компилируется #pragma hdrstop #pragma argsused #include...

Создание стека без использования классов - C++
На первом шаге нужно создать стек включением в него k целых чисел в возрастающей последовательности. Потом (второй шаг) нужно включить в...

Создание стека на основе линейного списка - C++
В функции main разработать программу работы с символьным стеком, реализующую операции добавления и удаления элементов из стека и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
23.04.2013, 18:32 #16
ququ_smile, ну почему не нравится, есть возможность заточить стек под себя, а не уповать на STL реализацию)
Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
23.04.2013, 18:35 #17
ququ_smile, посмотрите мой пост чуть-чуть повыше, я там описал класс стек и его достаточно, чтобы осуществить то, что я уже говорил.

Добавлено через 1 минуту
возможно ещё понадобится метод top()
ququ_smile
1 / 1 / 0
Регистрация: 28.01.2013
Сообщений: 162
23.04.2013, 18:41  [ТС] #18
Цитата Сообщение от yoghurt92 Посмотреть сообщение
ну почему не нравится, есть возможность заточить стек под себя, а не уповать на STL реализацию)
Я вообще сначала сделал под динамический массив, где всё просто, а потом узнал что мне нужен стек =( Теперь почти все методы есть, а вот под стек как-то геморойно переделывать=(
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
23.04.2013, 18:45 #19
ququ_smile, ну лучше вариант это вручную написать, да и опыт работы с указателями будет, так что Ternsip показал вам правильный путь, держитесь этого курса)
ququ_smile
1 / 1 / 0
Регистрация: 28.01.2013
Сообщений: 162
23.04.2013, 19:06  [ТС] #20
Цитата Сообщение от yoghurt92 Посмотреть сообщение
ququ_smile, ну лучше вариант это вручную написать, да и опыт работы с указателями будет, так что Ternsip показал вам правильный путь, держитесь этого курса)
Я, чесно говоря, не всё понимаю, что написал Ternsip =( да и с классами я особо еще не знакомился...
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
23.04.2013, 19:08 #21
ququ_smile, ну структуры вы знаете? можно переделать, оставить структуру и необходимые функции для работы.
ququ_smile
1 / 1 / 0
Регистрация: 28.01.2013
Сообщений: 162
23.04.2013, 22:04  [ТС] #22
Цитата Сообщение от yoghurt92 Посмотреть сообщение
ququ_smile, ну структуры вы знаете? можно переделать, оставить структуру и необходимые функции для работы.
Как я понял, всё что нужно - это создать массив заполнять с 1-го элемента, а считать с последнего? И в нулевой элемент ничего не записать, ибо голова при этом будет -1 ?
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
23.04.2013, 22:06 #23
ququ_smile, так у вас же стек а не массив, что именно вас не устраивает?
ququ_smile
1 / 1 / 0
Регистрация: 28.01.2013
Сообщений: 162
23.04.2013, 22:09  [ТС] #24
Цитата Сообщение от yoghurt92 Посмотреть сообщение
ququ_smile, так у вас же стек а не массив, что именно вас не устраивает?
Ну я же вроде писал(или не писал... влом смотреть) что не буду тут, использовать <stack>, а буду всё делать вручную. Но по сути стек - это тоже массив, но обращение к элементам которого мне как раз и не нравится
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
23.04.2013, 22:13 #25
ququ_smile, ну если у вас написано надо использовать стек, не думаю что у вас примут работу с массивом, поэтому надо разбираться, давайте вы скажите что не понятно, я попытаюсь объяснить по-человечески)
ququ_smile
1 / 1 / 0
Регистрация: 28.01.2013
Сообщений: 162
23.04.2013, 22:15  [ТС] #26
Цитата Сообщение от yoghurt92 Посмотреть сообщение
ququ_smile, ну если у вас написано надо использовать стек, не думаю что у вас примут работу с массивом, поэтому надо разбираться, давайте вы скажите что не понятно, я попытаюсь объяснить по-человечески)
Просто у меня был код на 250+ строк, сделаный под динамический массив и я его пытался передалать под стек(что очень геморойно, с моими то знаниями), поэтому, если не возражаете, давайте отложим консультацию на завтра
kravam
быдлокодер
1694 / 881 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
23.04.2013, 22:38 #27
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Обсуждение начиналось нормально, но потом ушло куда-то в дебри. Дайте чуваку чё он просит, пусть он сам потом разбирается, стек ему надо или очередь, оформлять заполнение элементов стека в виде функции или нет

Итак, следую своему правилу: минимум изменений, вот таким должен быть твой код:


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
#include <iostream>
#include <stack>
 
using namespace std;
 
const int N=100;
 
struct Football
 {
     char fio[10];
     int vozrast;
     int kol_gollov;
     double vremya;
     char legioner[3];
     double plata;
 
     //Во-первых запомни, поля структур инициализируются в конструкторе
     //НО если эти значения непременно водятся с консоли, то, возможно, оно и лишнее
     Football () {kol_gollov= 0; vremya= 0; plata= 0;}
 
 
 };
stack <Football> football;
 
int main()
{
    
    //Тут всё просто:
    
    //Объявляешь переменную типа Football
    Football Football_;
    
    //И заполняешь её
    cout<<"Vvedite familiu imya otchestvo"<<endl;
    cin>>Football_.fio;
    cout<<"Vozrast"<<endl;
    cin>>Football_.vozrast;
    cout<<"Kollichestvo golov"<<endl;
    cin>>Football_.kol_gollov;
    cout<<"Vremya"<<endl;
    cin>>Football_.vremya;
    cout<<"Yavlyaentsya legionerom? (yes/no)"<<endl;
    cin>>Football_.legioner;
    cout<<"Zar_plata"<<endl;
    cin>>Football_.plata;
 
      
    //Ну и кладём всё это дело в стек  
    football.push (Football_);  
 
    return 0;
}

Вопрос решён. Всё остальное это ДРУГИЕ вопросы. В сети есть охренительная книга по stl
Л.Аммерааль - STL для программистов на C++.djvu

Если надо я скину
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
23.04.2013, 22:43 #28
kravam, за книгу спасибо, да все понятно, но у меня вопрос, как вы собираетесь вывести содержимое стека, например, я хочу вывести все записи на экран?)
kravam
быдлокодер
1694 / 881 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
23.04.2013, 22:56 #29
Я ничё не собираюсь выводить. Но если бы приспичило, то так:
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
#include <iostream>
#include <stack>
#include <stdio.h>
 
using namespace std;
 
const int N=3;
 
struct Football
 {
     char fio[10];
     int vozrast;
     int kol_gollov;
     double vremya;
     char legioner[3];
     double plata;
 
     //Во-первых запомни, поля структур инициализируются в конструкторе
     //НО если эти значения непременно водятся с консоли, то, возможно, оно и лишнее
     Football () {kol_gollov= 0; vremya= 0; plata= 0;}
 
 
 };
stack <Football> football;
 
int main()
{
    
    //Тут всё просто:
    
    //Объявляешь переменную типа Football
    Football Football_;
    
    for (int i= 0; i< N; i++) {
        //И заполняешь её
        cout<<"Vvedite familiu imya otchestvo"<<endl;
        cin>>Football_.fio;
        cout<<"Vozrast"<<endl;
        cin>>Football_.vozrast;
        cout<<"Kollichestvo golov"<<endl;
        cin>>Football_.kol_gollov;
        cout<<"Vremya"<<endl;
        cin>>Football_.vremya;
        cout<<"Yavlyaentsya legionerom? (yes/no)"<<endl;
        cin>>Football_.legioner;
        cout<<"Zar_plata"<<endl;
        cin>>Football_.plata;
     
          
        //Ну и кладём всё это дело в стек  
        football.push (Football_);  
    } 
     
    
    //ВЫвод:
    while (!football.empty())  {
     cout <<  football.top().fio<< endl;
     cout <<  football.top().vozrast<< endl;
     cout <<  football.top().kol_gollov<< endl;
     cout <<  football.top().vremya<< endl;
     cout <<  football.top().legioner<< endl;
     cout <<  football.top().plata<< endl;
     football.pop();
    }
    
    
    
    return 0;
}
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
23.04.2013, 22:58 #30
kravam, поправьте если ошибаюсь, но после вашего вывода стек будет пуст?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2013, 22:58
Привет! Вот еще темы с ответами:

Создание стека состояний через vector - C++
Почему компилятор ругается на такое выражение? #include &lt;vector&gt; #pragma once class AI { public: AI(void); ~AI(void); ...

Создание корзины интернет магазина с использованием стека - C++
помогите пожалуйста написать такую ​​программу, я в отчаянии Если не напишу то завалю курсач, а как это написать понятия не имею :cry: ...

Основы ООП. Создание стека через класс - C++
Приветствую всех пользователей форума. Относительно недавно начал осваивать ООП. Было необходимо выполнить следующее задание : нужно...

Структура стек (: добавить элемент в стек, удалить элемент из стека, получить значение с вершины стека, размер стека...) - C++
Всем привет,ребят помогите пожалуйста с лабой,вообще без понятия про стеки:( Может кто то делал,или встречался с таким заданием: ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.04.2013, 22:58
Ответ Создать тему
Опции темы

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