Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Урок 2: Стек 2.1
- #include <iostream>
- #include <vector>
- using namespace std;
- template <typename It>
- void PrintRange(It range_begin, It range_end) {
- for (auto it = range_begin; it != range_end; ++it) {
- cout << *it << " "s;
- }
- cout << endl;
- }
- template <typename Type>
- class Stack {
- public:
- void Push(const Type& element) {
- // напишите реализацию
- elements_.push_back(element);
- }
- void Pop() {
- // напишите реализацию
- elements_.pop_back();
- }
- const Type& Peek() const {
- // напишите реализацию
- return elements_.back();
- }
- Type& Peek() {
- // напишите реализацию
- return elements_.back();
- }
- void Print() const {
- // напишите реализацию
- PrintRange(begin(elements_),end(elements_));
- }
- uint64_t Size() const {
- // напишите реализацию
- return elements_.size();
- }
- bool IsEmpty() const {
- // напишите реализацию
- return elements_.empty();
- }
- private:
- vector<Type> elements_;
- };
- int main() {
- Stack<int> stack;
- for (uint32_t i = 0; i < 10; ++i) {
- stack.Push(i);
- stack.Print();
- }
- while (!stack.IsEmpty()) {
- stack.Pop();
- stack.Print();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement