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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Работа с файлами. Спасайте) http://www.cyberforum.ru/cpp-beginners/thread1206808.html
Здравствуйте, очень нужна помощь. Есть тест, занесенный в текстовый файл () следующей структуры: строка1 - номер вопроса, строка2 - вопрос, строка3 - варианты ответа, строка4 - ввод ответа. Я построчно его считываю. Когда доходит до считывания строки: "Введите ответ", я ввожу определённую цифру, которую нужно занести в обычный численный массив. Как это сделать? Вот есть код, но компилятор...
C++ Составить программу на языке С++ для обработки строк с использованием указателей Дана строка. Распечатать слова в два столбика. 1 столбик — слова, имеющие четное количество букв, а второй — нечётное. help!! Добавлено через 6 часов 8 минут help http://www.cyberforum.ru/cpp-beginners/thread1206800.html
Некоторые функции не соответствуют условию задачи C++
программа выдает неправильные результаты с операциями итератора и вообще в задании написано совсем другие операции: 1) установка на начало списка, 2) проверка конца списка, 3) доступ к значению текущего элемента, 4) переход к следующему элементу списка, 5) переход к предыдущему элементу списка (для списков на базе массива или двусвязных структур) а здесь в меню программы написано совсем...
C++ Корневая директория ОС
Гуглю-гуглю, ну никак не могу найти информацию о том - какой функцией вытянуть корневую директорию ОС?
C++ Автоматический выбор шага и метод Рунге-Кутта http://www.cyberforum.ru/cpp-beginners/thread1206763.html
Имеется такое вычисление диф. уравнения методом Рунге-Кутты: #include <iostream> using namespace std; float fun(float x, float y) { return x*x + y*y; } void run_kut(float a, float b, float y0, int n) {
C++ Получение значения из функции Здравствуйте! Помогите понять что делаю не так. Очевидно неправильно возвращаю значение из функции, но как правильно реализовать не могу додуматься. Есть такой вот класс: class CSystemApi { public: CSystemApi(void); ~CSystemApi(void); BOOL filePathExist(LPCTSTR szPath); LPCSTR getGUID() const; LPCSTR getHWID() const; подробнее

Показать сообщение отдельно
uglyPinokkio
325 / 228 / 41
Регистрация: 30.05.2014
Сообщений: 682
13.06.2014, 07:36     Создать стек на основе контейнера vector
Примерно так.

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;
}
 
Текущее время: 04:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru