[[ノート>ノート/ノート]]
訪問数 &counter();   最終更新 &lastmod();

***C++のTemplate機能 [#p9d2e51d]
-[[たとえば説明:http://www.geocities.jp/ky_webid/cpp/language/027.html]]
-例題
 // 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;
 }

-で、EPMRの場合
--Epmr.h 84-5行目で
    IterativeOptimizer< Solution >* CreateGlobalOptimizer();
    IterativeOptimizer< Solution >* CreateLocalOptimizer();
--

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS