2

我想纠正一个比较两个 ISO 6801 时间戳并返回最新时间戳的函数。我无法找到创建函数的简单方法

例如给定string s1 = 2012-10-10 09:42:00;string s2 = 2012-10-10 09:52:00;

compare_timestamp(s1,s2) 将返回 s2

4

2 回答 2

4

如果您只需要查找最新的,则字符串比较就足够了。

string &compare_timestamp(string &s1, string &s2) {
    return s1.compare(s2) > 0 ? s1 : s2;
}
于 2012-12-19T02:13:56.957 回答
2
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);
}

现在,一个更好的解决方案是创建一个TimeStamp类而不是std::string直接使用一个类。可以在TimeStamp内部保持 astd::string和重载operator<以仅推迟到std::string::operator<,但您将使用强类型

于 2012-12-19T04:20:05.873 回答