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

Структура: стек из произвольного количества элементов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ряд тейлора http://www.cyberforum.ru/cpp-beginners/thread775710.html
Вобщем вот программа. #include <iostream.h> #include <math.h> #include <iomanip.h> #include <conio.h> int main () { const int max = 500;
C++ Очередь. Организуйте обработку каждого элемента: печать строк из информационной части и их первых символов Составьте программу, которая создает очередь из произвольного количества элементов. Информационная часть динамического элемента должна состоять из двух строк. Организуйте обработку каждого элемента: печать строк из информационной части и их первых символов. http://www.cyberforum.ru/cpp-beginners/thread775707.html
C++ Проверить, образует ли элементы данного массива арифметическую прогрессию
Дан массив целых чисел. Проверить, образует ли элементы данного массива арифметическую прогрессию.
Скобки у конструктора C++
Задавал подобный вопрос, однако следующий код все равно ставит меня в тупик. Почему такой код нормально компилируется и работает: BFGlobalServiceProxy pr; int result = pr.login(login, loginResp); а такой выдает ошибку при компиляции: BFGlobalServiceProxy pr(); int result = pr.login(login, loginResp); ошибка в qtcreator
C++ Не инкрементируется переменная http://www.cyberforum.ru/cpp-beginners/thread775675.html
Привет. В общем так: в main() создается определенное юзером количество ботов Bot *ptrBots = new Bot ; Каждому боту я даю определенное имя. Здесь i - это закрытый static int элемент класса. Инициализируется нулем. nameForBot - это закрытый static string элемент класса Bot::Bot() {
C++ Поиск не зависящий от регистра int Poisk (SPISOK *spisok,char *s,int n) { while (spisok->curr) { if ((spisok->curr->adres.Indexa==atoi(s)) || ((spisok->curr->adres.Dom==atoi(s))) || ((spisok->curr->adres.Kv==atoi(s))) || !strncmp(spisok->curr->adres.Name,s,strlen(s)) || !strncmp(spisok->curr->adres.Gorod,s,strlen(s)) || !strncmp(spisok->curr->adres.Ulica,s,strlen(s))) подробнее

Показать сообщение отдельно
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,900
Записей в блоге: 2
Завершенные тесты: 1
31.01.2013, 09:28     Структура: стек из произвольного количества элементов
простенький вариант:
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
#include <iostream>
#include <iomanip>
 
struct Data{
    int first;
    int second;
};
 
class Stack{
private:
    struct Node{
        Data data;
        Node * next;
    };
    Node * last;
    size_t count;
    Stack(Stack&);
    Stack & operator=(Stack&);
public:
    Stack();
    void pop();
    void clear();
    void push(const Data&);
    void push(const int,const int);
    bool empty()const;
    Data const & top() const;
    size_t size();
    ~Stack();
};
 
Stack::Stack(){
    last=NULL;
    count=0;
}
Stack::~Stack(){
    this->clear();
}
 
void Stack::push(const Data & m_data){
    Node * newnode=new Node;
    newnode->next=last;
    last=newnode;
    last->data=m_data;
    ++count;
}
void Stack::push(const int m_first,const int m_second){
    Node * newnode=new Node;
    newnode->next=last;
    last=newnode;
    last->data.first=m_first;
    last->data.second=m_second;
    ++count;
}
void Stack::pop(){
    if(!last) return;
    Node * temp;
    temp=last;
    last=last->next;
    --count;
    delete temp;
}
void Stack::clear(){
    Node * temp=last;
    while(temp){
        last=last->next;
        delete temp;
        temp=last;
    }
    this->count=0;
}
 
bool Stack::empty()const{
    return !count;
}
size_t Stack::size(){
    return this->count;
}
 
Data const & Stack::top() const{
    return last->data;
}
 
 
void printtop(const Stack & stack);
void printall(Stack & stack);
 
 
int main(){
    {Stack st;
    st.push(3,4);
    st.push(5,2);
    st.push(8,3);
    printall(st);
    }
    std::cin.get();
}
 
 
void printtop(const Stack & stack){
    Data data;
    data=stack.top();
    std::cout<<data.first<<std::setw(10)<<data.second<<std::setw(15)
            <<data.first*data.first+data.second*data.second<<std::endl;
}
 
void printall(Stack & stack){
    while(!stack.empty()){
        printtop(stack);
        stack.pop();
    }
}
 
Текущее время: 09:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru