我有一个这样的堆栈模板类:
#include <limits.h> // header for max values
template <class T> class StakMin: public My_Stack<T> {
My_Stack <T> Min ;
StakMin(){
T= INT_MAX; // <----------- I want to select it according to the T value
My_Stack <T>::My_Stack();
}
void push(T key){
if (key < min() )
{
Min.push(key);
}
My_Stack <T>::push(key);
}
T get_top(){
int value = My_Stack <T>::get_top();
if(value == min())
{
Min.get_top();
}
return value;
}
T min(){
if( Min.Is_empty()) return INT_MAX; // <------------ I want to select it according to the T value
else return Min.peek();
}
};
一种解决方案是使用带有 Switch 的函数并静态地做出决定,但我想知道有没有办法像模板一样行事,(更灵活)让我知道在 java 或其他语言中是否有特殊的方式。
非数字类型的最大值是多少?