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

Как работать с STL stack - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 91, средняя оценка - 4.88
videolord
 Аватар для videolord
48 / 14 / 1
Регистрация: 20.02.2011
Сообщений: 152
07.03.2011, 13:45     Как работать с STL stack #1
дайте плис ссылки на книжки по STL,а именно интересует stack!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.03.2011, 13:45     Как работать с STL stack
Посмотрите здесь:

C++ STL vector превратить в stack
C++ STL stack
Как сделать stl::stack полем класса C++
C++ Есть ли связь между STL-stack и stack - высокопроизводительная память?
реализация stack и dack в STL C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
07.03.2011, 13:49     Как работать с STL stack #2
http://www.cplusplus.com/reference/stl/stack/
videolord
 Аватар для videolord
48 / 14 / 1
Регистрация: 20.02.2011
Сообщений: 152
07.03.2011, 20:18  [ТС]     Как работать с STL stack #3
а там нет примеров!!!Гуглил, но не могу найти нормальную статью!
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
07.03.2011, 20:19     Как работать с STL 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
#include <stack>
#include <vector>
#include <iostream>
 
// Для простоты примера стек содержит целочисленные переменные
// А в качестве промежуточного буфера используется не файл, а vector
 
int main()
{
        std::stack<int> s;
 
        // Заполнение стека числами от 0 до 9
        for(int i = 0; i < 10; ++i)
                s.push(i);
 
        // Допустим в стеке должны остаться все числа, кроме 5
        // Соответственно необходимо удалить элемент со значением 5
        std::vector<int> v;
        while(!s.empty())
        {
                if(s.top() != 5)                // Это ключевой момент, в стек помещаются
                        v.push_back(s.top());   // все элементы не равные 5
 
                s.pop();
        }
 
        // Теперь стек пустой, а вектор содержит все значения стека, кроме 5.
        // При этом первый элемент вектора содержит число 9.
        // Чтобы сохранить исходную последовательность в стеке
        // необходимо помещать элементы в стек, начиная с конца вектора.
        for(int i = v.size() - 1; i >= 0; --i)
                s.push(v[i]);
 
        // Для проверки выведем стек на экран
        while(!s.empty()) {
                std::cout << s.top() << ' ';
                s.pop();
        }
 
        return 0;
}
videolord
 Аватар для videolord
48 / 14 / 1
Регистрация: 20.02.2011
Сообщений: 152
07.03.2011, 21:44  [ТС]     Как работать с STL stack #5
не мог бы кто нить обьяснить этот код!Гуглил и нашел!не могли бы комменты поставить
По идее так устроен

Ввод
$VOlendomord$
__________________
Вывод
<i>VOlendomord</i>


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
#include <cstdio>
#include <stack>
#include <cctype>
#include <iostream>
 
using namespace std;
 
int main(void) {
 char ch;
 stack<char> sym;
  while ((ch = getchar()) != EOF) {
  while ((ch = getchar()) != '$') {
  if (ch == ' ') {
  continue;
  }
  if (isalpha(ch)) {
  if (sym.empty()) {
      printf ("<i>%c", ch);
      sym.push('c');
      }else {
      putchar(ch);
      }
     } 
     }
 if (!sym.empty()) {
      printf ("</i>");
       sym.pop();
      }
        putchar('\n');
        getchar();
    }
    return 0;
}
videolord
 Аватар для videolord
48 / 14 / 1
Регистрация: 20.02.2011
Сообщений: 152
07.03.2011, 21:45  [ТС]     Как работать с STL stack #6
то есть код правильный но не могу понять как устроен!!!
Yandex
Объявления
07.03.2011, 21:45     Как работать с STL stack
Ответ Создать тему
Опции темы

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