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

Модель стека - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Замена елементов в строке в матрице http://www.cyberforum.ru/cpp-beginners/thread724380.html
Добрый день. Задача такая. Есть матрица: 1 1 1 1 0 1 1 1 0 1 1 1 0 0 0 1 Нужно заменить елементы стоящие справа от 1 в строке на 0 и начинать обход с низу вверх с первого столбика.
C++ Как ведет себя cin, если пользователь вводит некорректные данные? Читаю C++ Primer Plus by Stephen Prata. В седьмой главе у него есть следующий пример. // lotto.cpp -- probability of winning #include <iostream> // Note: some implementations require double instead of long double long double probability(unsigned numbers, unsigned picks); int main() { using namespace std; http://www.cyberforum.ru/cpp-beginners/thread724376.html
крестики нолики, нужен мозг C++
1) выберите пункт меню - "Game", нажмите Enter, а потом нажмите стрелочки вверх, вниз и вылазит меню :( почему и как решить эту проблему? 2) помогите с ходами компьютера и проверкой на победу заранее большое спасибо. + может есть какие-то фейлы в коде или способ получше. критикуйте. вот код: #include <conio.h> #include <iostream> #include <windows.h>
C++ Преобразование значения переменной (long) через функцию в значения структуры
Я недавно начал заниматься С++ и программированием в целом. Вот у меня такая проблема. В этой программе не работает часть, когда вводишь кол-во секунд, а с помощью функции time secs_to_time(long ss) оно должно преобразовать секунды в структуру TIME с соответствующими значениями d2.hours, d2.minutes, d2.seconds В Процедуре time secs_to_time(long ss) выдает 3 ошибки (мол не хватает точек с...
C++ Смысл картинки и рекурсия изнутри http://www.cyberforum.ru/cpp-beginners/thread724328.html
http://s018.***********/i522/1212/0b/704b04ecd185t.jpg как происходит рекурсия изнутри, что это вообще картинка показывает ?
C++ И снова массивы (найти максимальный элемент, определить среднее арифметическое) Задано 2 целочисленных массива X(n) и Z(k). В каждом массиве найти максимальный элемент массива,и если это простое число-удалить все элементы,равные максимальному значению.Определить среднее арифметическое положительных элементов массива после удаления.: Что у меня не правильно и что мне делать дальше #include <stdafx.h> #include <iostream> #include <math.h> using namespace std; int... подробнее

Показать сообщение отдельно
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
13.12.2012, 03:35     Модель стека
go, там проблема будет с "печать содержимого стека."
Хотя, по-моему, идиотское задание, противоречит абстрактной модели стека, т.к. требуется либо перезаполнять, либо иметь обращение через [], либо проходится от начала до конца (иметь доступ к первому элементу). А стек ли это уже получится?

Kuzia domovenok, вы пишите
контролирует не навыки копипастинга
рядом ваша реализация данного алгоритма. И чем это лучше?

Добавлено через 5 минут
VanUliK, если совсем по простому, то можно реализовать стек, завернув его вокруг массива.
Стек на основе статического массива
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
#include <iostream>
#include <cstddef>
#include <string>
 
class Teacher
{
    public:
        Teacher() {}
        Teacher(std::string name, std::string surname):
            _name(name), _surname(surname) {}
        void set(std::string name, std::string surname)
        {
            _name = name;
            _surname = surname;
        }
        friend std::ostream& operator<< (std::ostream &output, const Teacher &t)
        {
            output<< "Name: "<< t._name<< std::endl
                  << "Surname: "<< t._surname<< std::endl;
            return output;
        }
    private:
        std::string _name, _surname;
};
 
 
class MyStack
{
    public:
        MyStack(): counter(0) {}
        void push(const Teacher &el)
        {
            if (counter < N) t[counter++] = el;
        }
        void pop()
        {
            if (counter > 0) counter--;
        }
        const std::size_t size() const {return counter; }
        bool empty() {return counter == 0; }
        const Teacher& top() const
        {
            if (counter > 0) return t[counter - 1];
        }
    private:
        enum {N = 10 };
        Teacher t[N];
        std::size_t counter;
};
 
 
 
 
int main()
{
    MyStack s;
    s.push (Teacher ("Ivan", "Petrov"));
    s.push (Teacher ("Vladimir", "Voronov"));
    while (!s.empty())
    {
        std::cout<< s.top()<< std::endl;
        s.pop();
    }
    return 0;
}
 
Текущее время: 21:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru