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

Создать стек на основе контейнера vector - C++

Восстановить пароль Регистрация
 
Tonzik
 Аватар для Tonzik
30 / 30 / 8
Регистрация: 11.06.2013
Сообщений: 124
13.06.2014, 02:02     Создать стек на основе контейнера vector #1
На основе контейнера vector построить стек целых чисел. Выполнить операции занесения элемента в стек, извлечение значения с вершины стека, вывода всех значений стека на экран, определения количества элементов стека.
Предусмотреть возможности:
- Формирование входных данных заданного размера (количество точек для проверки);
- Сохранение входных данных в файле с заданной названием;
- Считывание входных данных из заданного файла;
- Вывод результатов на экран или в файл.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.06.2014, 02:02     Создать стек на основе контейнера vector
Посмотрите здесь:

C++ Можно ли на основе vector'а создать двумерный массив
Создать стек целых чисел на основе статического массива. C++
C++ Копирование контейнера vector в конструкторе (STL)
reallocation памяти контейнера std::vector C++
На основе контейнера vector построить двумерный динамический массив C++
Очистка контейнера vector C++
C++ Обработка STL контейнера vector
C++ Реализовать возможности контейнера vector используя класс стек

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
uglyPinokkio
325 / 228 / 41
Регистрация: 30.05.2014
Сообщений: 682
13.06.2014, 07:36     Создать стек на основе контейнера vector #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Примерно так.

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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
 
class vStack
{
   public:
      void push(int);
      bool pop(int&);
      unsigned count();
      bool display();
      bool save(const std::string&);
      bool load(const std::string&);
   private:
      bool fromStream(std::istream& strm);
      bool toStream(std::ostream&);
      std::vector<int> data_;
};
 
void vStack::push(int val)
{
   data_.push_back(val);
}
 
bool vStack::pop(int& val)
{
   if(data_.size())
   {
      val = data_[0];
      data_.erase(data_.begin()+0);
      return true;
   }
   return false;
}
 
unsigned vStack::count()
{
   return data_.size();
}
 
bool vStack::toStream(std::ostream& strm)
{
   for(unsigned pos=0;pos<data_.size();pos++)
   {
      strm<<data_[pos]<<std::endl;
      if(!strm) break;
   }
   return strm;
}
 
bool vStack::fromStream(std::istream& strm)
{
   data_.clear();
   while(true)
   {
      int val=0;
      strm>>val;
      if(strm)
      {
         data_.push_back(val);
      }
      else
      {
         break;
      }
   }
   return (data_.size()>0 && strm.eof());
}
 
bool vStack::display()
{
   return toStream(std::cout);
}
 
bool vStack::save(const std::string& f_name)
{
   std::ofstream out_file(f_name.c_str());
   return toStream(out_file);
}
bool vStack::load(const std::string& f_name)
{
   std::ifstream in_file(f_name.c_str());
   return fromStream(in_file);
}
 
int main()
{
   int cnt=0;
   std::cout<<"Enter size\n";
   std::cin>>cnt;
   if(cnt>0)
   {
      vStack stack;
      for(int nom=0;nom<cnt;nom++)
      {
         std::cout<<"Enter element "<<nom<<"\n";
         int elem = 0;
         std::cin>>elem;
         stack.push(elem);
      }
      std::cout<<"\n"<<" stack size "<< stack.count();
      std::cout<<"\n";
      stack.display();
      std::cout<<"\n";
 
      int pop_val=0;
      if(stack.pop(pop_val))
      {
         std::cout<<"value "<<pop_val<<"\n";
      }
 
      std::cout<<"\n"<<" stack size "<< stack.count();
      std::cout<<"\n";
      stack.display();
      std::cout<<"\n";
      std::cout<<"Enter file_name\n";
      std::string f_name;
      std::cin>>f_name;
      if(!stack.save(f_name))
      {
         std::cout<<"Save failed\n";
      }
      vStack loaded_stack;
      std::cout<<"\n";
      std::cout<<"Enter file_name\n";
      std::cin>>f_name;
      if(loaded_stack.load(f_name))
      {
         std::cout<<"\n"<<" stack size "<< loaded_stack.count();
         std::cout<<"\n";
         loaded_stack.display();
      }
      else
      {
         std::cout<<"Load failed\n";
      }
 
 
   }
   return 0;
}
Yandex
Объявления
13.06.2014, 07:36     Создать стек на основе контейнера vector
Ответ Создать тему
Опции темы

Текущее время: 18:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru