C++ 比较c和x2B中的两个ISO 8601+;
我想更正一个函数,该函数将比较两个ISO 6801时间戳并返回最新的时间戳。我很难想出一个简单的方法来创建函数 例如,给定的C++ 比较c和x2B中的两个ISO 8601+;,c++,c++11,C++,C++11,我想更正一个函数,该函数将比较两个ISO 6801时间戳并返回最新的时间戳。我很难想出一个简单的方法来创建函数 例如,给定的字符串s1=2012-10-10 09:42:00和字符串s2=2012-10-10 09:52:00 compare_timestamp(s1,s2)将返回s2如果您只是需要查找最近的,字符串比较就足够了 string &compare_timestamp(string &s1, string &s2) { return s1.compar
字符串s1=2012-10-10 09:42:00代码>和字符串s2=2012-10-10 09:52:00代码>
compare_timestamp(s1,s2)将返回s2如果您只是需要查找最近的,字符串比较就足够了
string &compare_timestamp(string &s1, string &s2) {
return s1.compare(s2) > 0 ? s1 : s2;
}
现在,一个更好的解决方案是创建一个TimeStamp
类,而不是直接使用std::string
。TimeStamp
可以在内部保存std::string
和重载运算符,O 8601的设计使您可以按字典顺序比较字符串(例如,通过strcmp
)来确定它们的时间顺序。@Nemo所以将std::string
转换为const char*
,然后使用strcmp
?我不得不否决这一点,因为它不够简单。
std::string & compare_timestamp(std::string & lhs, std::string & rhs) {
return std::max(lhs, rhs);
}
std::string const & compare_timestamp(std::string const & lhs, std::string const & rhs) {
return std::max(lhs, rhs);
}