Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 比较c和x2B中的两个ISO 8601+;_C++_C++11 - Fatal编程技术网

C++ 比较c和x2B中的两个ISO 8601+;

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

我想更正一个函数,该函数将比较两个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.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);
}