如何对模板构造函数进行专门化?为了更好的理解,我举一个代码示例:
template<typename T>
class Stack {
private:
int nelem;
int size;
vector<T> stack;
public:
~Stack();
Stack<T>(int t);
void push(T data);
T pop();
T top();
int getPosTop(){return (nelem--);};
void cleanStack(){nelem = 0;};
bool StackEmpty(){ return (nelem == 0);};
bool StackFull(){ return (nelem == size);};
};
template <typename T> // constructor definition here
Stack<T>::Stack<T>(int t){
size = t;
nelem = 0;
};
int main(){
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它有很多错误。然后,我读到另一篇文章,一些建议,它正在取代
template <typename T>
Stack<T>::Stack<T>(int t){
Run Code Online (Sandbox Code Playgroud)
到
template <typename T> template <typename T> Stack<T>::Stack<T> (int …Run Code Online (Sandbox Code Playgroud) 我在数据框中有这个专栏
> str(df[,"Saida"])
POSIXct[1:2498938], format: "2016-01-01 04:05:00" "2016-01-01 04:23:00" "2016-01-02 04:09:00" "2016-01-03 03:58:00" ...
Run Code Online (Sandbox Code Playgroud)
我想忽略事件发生时的日期,但只考虑小时,分钟和秒.我虽然很直接:
hms(df[,"Saida"])
Run Code Online (Sandbox Code Playgroud)
这就出现了
Warning message:
In .parse_hms(..., order = "HM", quiet = quiet) :
Some strings failed to parse
Run Code Online (Sandbox Code Playgroud)
不好的迹象.返回是一个充满NA的向量
-------------------------------------------------- ----------------------
你能帮我找到一个解决方案,例如:将"2016-01-01 04:05:00"转换为"04:05:00"作为时间类,所以我可以把元素之间的区别,后者
PS:这可能会有所帮助
> dput(head(df[,"Saida"]))
structure(c(1451628300, 1451629380, 1451714940, 1451800680, 1451892720,
1451973420), class = c("POSIXct", "POSIXt"), tzone = "")
Run Code Online (Sandbox Code Playgroud)