stack empty () и stack size () в C ++ STL

Опубликовано: 31 Декабря, 2021

Стеки - это тип контейнерных адаптеров с типом работы LIFO (Last In First Out), где новый элемент добавляется с одного конца, а (вверху) элемент удаляется только с этого конца.

стек :: пустой ()

Функция empty () используется для проверки, пуст ли контейнер стека.

Синтаксис:

имя стека .empty ()
Параметры:
Параметры не передаются.
Возврат:
Верно, если стек пуст
Ложь, иначе

Примеры:

Вход: mystack
          mystack.empty ();
Выход: True
 
Ввод: mystack = 1, 2, 3
Выход: ложь

Ошибки и исключения

1. Показывает ошибку, если параметр передан
2. Не показывает гарантию выброса исключения.

// CPP program to illustrate
// Implementation of empty() function
#include <iostream>
#include <stack>
using namespace std;
int main()
{
stack< int > mystack;
mystack.push(1);
// Stack becomes 1
if (mystack.empty()) {
cout << "True" ;
}
else {
cout << "False" ;
}
return 0;
}

Выход:

Ложь

Заявка :
Учитывая стопку целых чисел, найдите сумму всех целых чисел.

Ввод: 1, 8, 3, 6, 2
Выход: 20

Алгоритм
1. Проверьте, пуст ли стек, если нет, добавьте верхний элемент к переменной, инициализированной как 0, и вытолкните верхний элемент.
2. Повторяйте этот шаг, пока стопка не станет пустой.
3. Выведите окончательное значение переменной.

// CPP program to illustrate
// Application of empty() function
#include <iostream>
#include <stack>
using namespace std;
int main()
{
int sum = 0;
stack< int > mystack;
mystack.push(1);
mystack.push(8);
mystack.push(3);
mystack.push(6);
mystack.push(2);
// Stack becomes 1, 8, 3, 6, 2
while (!mystack.empty()) {
sum = sum + mystack.top();
mystack.pop();
}
cout << sum;
return 0;
}

Выход:

20
стек :: размер ()

Функция size () используется для возврата размера контейнера стека или количества элементов в контейнере стека.

Синтаксис:

имя стека .size ()
Параметры:
Параметры не передаются.
Возврат:
Количество элементов в контейнере.

Примеры:

Ввод: mystack = 0, 1, 2
          mystack.size ();
Выход: 3
 
Ввод: mystack = 0, 1, 2, 3, 4, 5
          mystack.size ();
Выход: 6

Ошибки и исключения

1. Показывает ошибку, если параметр передан.
2. Не показывает гарантию выброса исключения.

// CPP program to illustrate
// Implementation of size() function
#include <iostream>
#include <stack>
using namespace std;
int main()
{
int sum = 0;
stack< int > mystack;
mystack.push(1);
mystack.push(8);
mystack.push(3);
mystack.push(6);
mystack.push(2);
// Stack becomes 1, 8, 3, 6, 2
cout << mystack.size();
return 0;
}

Выход:

5

Заявка :
Учитывая стопку целых чисел, найдите сумму всех целых чисел.

Ввод: 1, 8, 3, 6, 2
Выход: 20

Алгоритм
1. Проверьте, равен ли размер стека нулю, если нет, добавьте верхний элемент к переменной, инициализированной как 0, и вытолкните верхний элемент.
2. Повторяйте этот шаг, пока размер стека не станет равным 0.
3. Выведите окончательное значение переменной.

// CPP program to illustrate
// Application of size() function
#include <iostream>
#include <stack>
using namespace std;
int main()
{
int sum = 0;
stack< int > mystack;
mystack.push(1);
mystack.push(8);
mystack.push(3);
mystack.push(6);
mystack.push(2);
// Stack becomes 1, 8, 3, 6, 2
while (mystack.size() > 0) {
sum = sum + mystack.top();
mystack.pop();
}
cout << sum;
return 0;
}

Выход:

20
Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .
C++