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

Стек - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Функция вычисления корней квадратного уравнения http://www.cyberforum.ru/cpp-beginners/thread648920.html
Почему то корни не выводит...что не так? #include "iostream" #include "conio.h" #include "math.h" using namespace std; void root(float a,float b,float c,float &x1,float &x2) { float D=b*b-4*a*c;
C++ Вычислить с заданной точностью значение функции вот такая задачка.. http://www.cyberforum.ru/cpp-beginners/thread648908.html
Ошибка в организации класса C++
Мои первые попытки написать консольную версию пошагового боя обвенчались неудачей в самом начале. При тестовых ударах в цикле for увидел что очки жизней персонажа не уменьшаются, тк кк задумывалось. Начинаю подозревать что нужно использовать указатели, но это тоже не обвенчалось успехом, посоветуйте пожалуйста что нужно сделать чтобы из класса P2 переменная hp начала уменьшаться а не обнулялась...
C++ Описать функцию, которая формирует список Common
В составе программы описать функцию, которая формирует список Common, включив в него элементы, которые входят одновременно в список М1 и М2. Помогите пожалуйста, ибо идей вообще нет, как это сделать...
C++ Необходимо вернуть значение функции из Булевского значения и посчитать факториал http://www.cyberforum.ru/cpp-beginners/thread648875.html
Стоит задача- Написато программу которая спрашивает пользователя - Рост, вес, и возраст а затем выдаёт размер одежды по след. формулам: 1) Hat_size = вес/Рост*2.9; 2) Jacket_size = вес*Рост/288 и прибавить поправку 1/8 к каждым 10 over 30. (первая поправка вводится если возвраст 40); 3) Waist = вес/5.7 и прибавить поправку 1/10 к каждым 2-х годам over 28 (первая поправка вводится если...
C++ Как работает итератор? for(vector<string>::iterator iter=vec1.begin();iter!=vec1.end();++iter) *iter=""; вот такой вот пример разбираю, первая строчка предельно ясна, но вот вторая.... понятно что обнуляет, но откуда взялся *iter ? а он так точно знает что ему стирать и как, хм, странно все это... Добавлено через 1 минуту *iter до этого нигде не определялся, не объявлялся... подробнее

Показать сообщение отдельно
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
09.09.2012, 17:22     Стек
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
#include <iostream>
#include <string>
#include <stdexcept>
 
template <typename T>
class Stack
{
public:
    typedef T value_type;
    Stack() : siz(0), cap(0) // конструктор
    {
        std::size_t initCap(2);
        p = new value_type[initCap];
        cap = initCap;
    }
    Stack(Stack const& st) : siz(0), cap(0) // конструктор копии
    {
        p = new value_type[st.cap];
        cap = st.cap;
        for(std::size_t i = 0; i < st.siz; ++i)
        {
            p[i] = st.p[i];
        }
        siz = st.siz;
    }
    Stack& operator=(Stack st)
    {
        Swap(st);
        return *this;
    }
    ~Stack()
    {
        delete[] p;
        p = 0;
    }
    void push(value_type const& val)
    {
        if(siz == cap) Deallocate();
        p[siz] = val;
        ++siz;
    }
    void pop()
    {
        if(siz)
        {
            (p + siz - 1)->~value_type();
            --siz;
        }
    }
    value_type& top()
    {
        if(siz) return p[siz - 1];
        else throw std::out_of_range("0 == siz");
    }
    value_type const& top() const
    {
        if(siz) return p[siz - 1];
        else throw std::out_of_range("0 == siz");
    }
    std::size_t size() const
    {
        return siz;
    }
    bool empty() const
    {
        return !siz;
    }
private:
    value_type* p;
    std::size_t siz, cap; // число элементов и вместимость
    void Swap(Stack& st) // используется в операторе присваивания
    {
        delete[] p;
        p = st.p;
        st.p = 0;
        siz = st.siz;
        cap = st.cap;
    }
    void Deallocate() // увеличивает вместимость стека в два раза если стек заполнен
    {
        std::size_t newCap = 2 * cap;
        value_type* pt = new value_type[newCap];
        for(std::size_t i = 0; i < siz; ++i)
        {
            pt[i] = p[i];
        }
        cap = newCap;
        delete[] p;
        p = pt;
        pt = 0;
    }
};
 
int main()
{
    Stack<std::string> st, st1;
    st.push("zero");
    st.push("temporary string");
    st.top() = "first string";
    st1 = st;
    st1.push("secong string");
    for(std::size_t i = 0; !st1.empty(); ++ i)
    {
        std::cout << "\nst1.size() is " << st1.size() << std::endl;
        std::cout << st1.top() << '\n';
        st1.pop();
    }
    return 0;
}
 
Текущее время: 22:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru