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

Стек, не во всех случаях работает удаление - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Нахождение чисел в матрице. Очень сложно http://www.cyberforum.ru/cpp-beginners/thread212819.html
#include "stdafx.h" #include "iostream" #include "conio.h" #include "math.h" #include "time.h" using namespace std; #define nmax 100 int _tmain(int argc, _TCHAR* argv) {
C++ Си, работа с файлами помогите пожалуйста написать прогамму на Си, вот само задание: подготовьте текстовый файл, который состоит из строк, содержащих по два целых числа. Создайте программу, которая читает эти пары чисел и,если хотя бы одно из чисел отрицательное, записывает в текстовый файл их суммы через запятую. После последней суммы должна быть записана точка Добавлено через 1 час 26 минут... http://www.cyberforum.ru/cpp-beginners/thread212802.html
C++ перевод чисел(с++)
Здравствуйте!!! Наткнулся на интересну задачу, я ее решил, но ни как не пойму почему выходит не правильно!!! Суть задачи такая, вводим число в десятиричной системе и переводим его в бинарный код, затем 0 и 1 сортируем по возрастанию, полученный бинарный код обратно переводим в десятиричную систему. проблема тогда, когда перевожу в десятиричную систему... тест такой: ввод: 19 вывод: 28 вот...
нужен компилятор C под Windows 7 C++
нужен компилятор C, который бы работал под 64-битной Windows 7. Дайте ссылку, пожалуйста
C++ Хочу получить зачет! http://www.cyberforum.ru/cpp-beginners/thread212787.html
Помогите решить задачу на СИ++ Программа. Дан файл и две строки. Все вхождения первой строки в файл (в том числе и в качестве подстроки) заменить второй строкой. Имя файла и строки задаются в командной строке.
C++ верное/неверное расположение скобок delete подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
17.12.2010, 01:38     Стек, не во всех случаях работает удаление
Цитата Сообщение от White Luna Посмотреть сообщение
удаление должно быть реализовано, через оператор <
Не комильфо как-то...
Вот тот же самый класс, один метод добавил, ну и пару функций написал, даже не дружественных...
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
#include <iostream>
#include <string>
 
template <typename T>
class Stack {
        T * arr;
        int size;
        int pos;
public:
        Stack(int s) : size(s), pos(-1) {
                arr = new T [ size ];
        }
        ~Stack() {
                if ( arr )
                        delete [] arr;
        }
        
        void push(const T & val){
                if ( pos >= size - 1 )
                        throw ( std::string("Stack is full!") );
                arr[++pos] = val;
        }
        
        T pop(){
                if ( pos < 0 )
                        throw ( std::string("Stack is empty!") );
                return arr[pos--];
        }
        
        bool empty() const {
            return pos < 0;
        }
};
 
template <typename T>
std::istream & operator >> ( std::istream & ist, Stack<T> & stk ){
    T val;
    ist >> val;
    try {
        stk.push(val);
    }
    catch ( std::string e ){
        std::cerr << e << std::endl;
    }
    return ist;
}
 
template <typename T>
std::ostream & operator << ( std::ostream & ost, Stack<T> & stk ){
    T val;
    try {
        val = stk.pop();
        ost << val;
    }
    catch ( std::string e ){
        std::cerr << e << std::endl;
    }
    return ost;
}
 
int menu(){
    std::cout << std::endl;
    std::cout << "1 - put one\n2 - put some\n3 - get one\n4 - get all\n0 - exit\n> ";
    int ret;
    std::cin >> ret;
    std::cout << std::endl;
    return ret;
}
 
int main(){
    const int SIZE(10);
    Stack<int> stk(SIZE);
    int m;
    
    while ( m = menu() ){
        switch ( m ){
            case 1 :
                std::cout << "> ";
                std::cin >> stk;
                break;
            case 2 :
                {
                    int cnt;
                    std::cout << "Number of elements for input: ";
                    std::cin >> cnt;
                    if ( cnt < 1 ){
                        std::cerr << "Wrong input!" << std::endl;
                        break;
                    }
                    while (  cnt-- ){
                        std::cout << "> ";
                        std::cin >> stk;
                    }
                }
                break;
            case 3 :
                std::cout << stk << std::endl;
                break;
            case 4 :
                while ( ! stk.empty() )
                    std::cout << stk << std::endl;
                break;
            default :
                std::cerr << "Wrong choice!" << std::endl;
                break;
        }
    }
    
    return 0;
}
 
Текущее время: 14:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru