Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Stack with min element
//Title of this code #include <iostream> #include <list> using namespace std; template<class T> class Stack { list<T> elements; list<T> minElements; public: void push(T e) { elements.push_back(e); if (minElements.empty() || e < minElements.back()) minElements.push_back(e); } T pop() { if (elements.empty()) return T(); T tmp = elements.back(); elements.pop_back(); if (tmp == minElements.back()) minElements.pop_back(); return tmp; } T minElement() { if (minElements.empty()) return T(); return minElements.back(); } }; int main() { Stack<int> s; cout << s.minElement() << " " << s.pop() << endl; s.push(5); cout << s.minElement() << endl; s.push(1); cout << s.minElement() << endl; s.push(6); cout << s.minElement() << endl; cout << s.pop() << endl; }
run
|
edit
|
history
|
help
0
Palindromo
Web Browser History - DLL
Split in C++ (Simple)
queueArray
backtracking
Decimal to Binary
Let's Go!
runtime template mode processor
funpointer
Two-phase sample with GCC