我想要一個比較兩個ISO 6801時間戳並返回最近一個時間戳的函數。我無法找出一個簡單的方法來創建一個功能在C++中比較兩個ISO 8601
例如鑑於string s1 = 2012-10-10 09:42:00;
和string s2 = 2012-10-10 09:52:00;
compare_timestamp(S1,S2)將返回S2
我想要一個比較兩個ISO 6801時間戳並返回最近一個時間戳的函數。我無法找出一個簡單的方法來創建一個功能在C++中比較兩個ISO 8601
例如鑑於string s1 = 2012-10-10 09:42:00;
和string 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;
}
我不得不對此表示不滿意。 –
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
可以從內部舉行std::string
和過載operator<
只是推遲到std::string::operator<
,但你會使用strong types
ISO 8601的設計使你可以比較字符串按字典(例如,通過'strcmp')來確定它們的順序時間。 – Nemo
@Nemo所以將兩個'std :: string'轉換爲'const char *'然後使用'strcmp'? – pyCthon