![]() |
ノート/EPMRを見る〜C++http://pepper.is.sci.toho-u.ac.jp/pepper/index.php?%A5%CE%A1%BC%A5%C8%2FEPMR%A4%F2%B8%AB%A4%EB%A1%C1%A3%C3%A1%DC%A1%DC |
![]() |
ノート 訪問数 1869 最終更新 2008-01-20 (日) 17:18:05
// stack.h #include <iostream> template <class T> class CStack{ public: enum{ STACK_SIZE = 100 }; // スタックサイズ CStack(){ m_sp = 0; } // コンストラクタ void push(const T& data); // プッシュ T pop(); // ポップ private: T m_data[STACK_SIZE]; // スタック本体 int m_sp; // スタックポインタ }; // プッシュ template<class T> void CStack<T>::push(const T& data){ if( m_sp >= STACK_SIZE ) // スタックが満杯 { std::cout << "スタックが満杯でプッシュできません" << std::endl; return; } m_data[m_sp++] = data; std::cout << data << "がプッシュされました" << std::endl; } // ポップ template<class T> T CStack<T>::pop(void){ if( m_sp <= 0 ) // スタックが空 { std::cout << "スタックが空でポップできません" << std::endl; return 0; } T data = m_data[--m_sp]; std::cout << data << "がポップされました" << std::endl; return data; } // main.cpp #include "stack.h" int main() { CStack<int> stack; // int型を扱うスタックを生成 stack.push( 100 ); stack.push( 200 ); stack.pop(); stack.pop(); stack.pop(); return 0; }
IterativeOptimizer< Solution >* CreateGlobalOptimizer(); IterativeOptimizer< Solution >* CreateLocalOptimizer();