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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
dreeqa
0 / 0 / 0
Регистрация: 17.01.2011
Сообщений: 11
#1

класс stack - C++

17.01.2011, 18:21. Просмотров 1555. Ответов 4
Метки нет (Все метки)

Всем привет))помогите пожалуйста....нужна прога на тему шаблоны функций и классов,при чём дан класс stack.Перегрузить операции "+"-добавить элемент.и "-"-извлечь элемент....СРОЧНО надо!!!!!спасибо за ранее
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2011, 18:21     класс stack
Посмотрите здесь:

Класс stack - C++
нужен пример класса стек типа char (запихать строку в стек)

класс stack - C++
Определите в программе класс stack, реализующий стек, который можно использовать для хранения символов: #define SIZE 10 //...

Класс Stack неробит - C++
Доброго времени суток. Прошу помочь с реализацией класса Stack #include "stdafx.h" #include <iostream> #include <assert.h> ...

Создать параметризированный класс Stack - C++
Помогите пожалуйста Создать параметризированный класс Stack. Класс должен содержать конструкторы, деструктор, а также функции push, pop,...

Разработать шаблонный класс Stack - C++
На С++ разработать шаблонный класс Stack (стек)для представления одномерных динамических массивов. Класс должен обеспечивать хранение...

Используя класс stack, напишите функцию loadstack - C++
Используя класс stack, напишите функцию loadstack(), которая бы возвращала стек, заполненный буквами алфавита (a-z). В вызывающей программе...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Driver_09
15 / 15 / 0
Регистрация: 03.05.2010
Сообщений: 158
17.01.2011, 18:57     класс stack #2
C++
1
2
3
4
5
6
7
8
9
10
11
template <class stack> void add(T &a)
{
T c;
c << a << endl;
}
 
template <class stack> void del(T &a)
{
T c;
// тут не знаю как...Ну удаление элемента в общем
}
Я думаю так...Ну или классом примерно через дружественные функции написать)
C++
1
2
3
4
5
6
class stack {
public:
stack(тут данные) {}
friend stack & operator+ (stack &x)
friend stack & operator- (stack &y)
               }
Ну дальше описать операторы...
Ну чем мог, помог)))
dreeqa
0 / 0 / 0
Регистрация: 17.01.2011
Сообщений: 11
17.01.2011, 19:14  [ТС]     класс stack #3
спасибо очень помог)))
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
17.01.2011, 19:30     класс stack #4
Поискать по форуму не судьба? Тут таких стопицот.
Без перегрузки
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
#include <cstdio>
#include <cstddef>
#include <cassert>
 
template <class DataType>
class Stack {
 public:
  Stack(void) : size_(0), capacity_(0), data_(NULL) {}
  explicit Stack(size_t capacity)
    : size_(0), capacity_(capacity), data_(new DataType[capacity]) {}
  ~Stack() {
    delete [] data_;
  }
  void Push(const DataType &value) {
    assert(size_ <= capacity_);
    if (size_ == capacity_)
      set_capacity(size_ + 1);
    data_[size_++] = value;
  }
  DataType &Top() {
    assert(size_ > 0);
    return data_[size_ - 1];
  }
  DataType &Pop() {
    assert(size_ > 0);
    return data_[--size_];
  }
  size_t size() const { return size_; }
  size_t capacity() const { return capacity_; }
  void set_capacity(size_t new_capacity) {
    if (new_capacity == capacity_) return;
    DataType *new_data = new DataType[new_capacity];
    size_t smaller_capacity = (capacity_ < new_capacity)?
                               capacity_ : new_capacity;
    for (int i = 0; i < smaller_capacity; ++i)
      new_data[i] = data_[i];
    delete [] data_;
    data_ = new_data;
    capacity_ = new_capacity;
  }
 private:
  size_t size_;
  size_t capacity_;
  DataType *data_;
};
 
int main(int argc, char *argv[]) {
  Stack<int> stack;
 
  for (int i = 0; i < 10; ++i)
    stack.Push(i);
 
  for (int i = 0; i < 10; ++i)
    printf("%d ", stack.Pop());
 
  return 0;
}
Если перегрузку оператора "+" понятно, как реализовывать, то как реализовывать "-" не понятно.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2011, 19:33     класс stack
Еще ссылки по теме:

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

Sos! Записать класс Stack в файл, "крашит" - C++
Ребятки!! Помогайте! Не могу разобраться с записью\чтением в файл(методы Read и Write)...По коду вроде всё прозрачно,но намудрил с...

stack - C++
не могу норм прокомпилировать прогу, вот код, подскажите что не так! #include &lt;stack&gt; #include &lt;iostream&gt; int main() { const int...

Контейнер stack - C++
есть функция, которая возвращает контейнер stack(точнее ссылку на его верхний элемент return binary.top();). как можно достать все...


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

Или воспользуйтесь поиском по форуму:
igorrr37
1644 / 1272 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
17.01.2011, 19:33     класс stack #5
перегрузка плюс
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <stack>
using namespace std;
 
template<class T>
class Stack: public stack<T>{
    public:
        Stack<T>& operator+(T);
};
 
template<class T>
Stack<T>& Stack<T>::operator+(T ini){
            push(ini);
            return *this;
}
 
int main() {
    Stack<int> st;
    st+5+2+3;
    cout<<st.top();
}
Yandex
Объявления
17.01.2011, 19:33     класс stack
Ответ Создать тему
Опции темы

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