我有一个功能,用于对与自定义比较器一起使用的字符串进行不区分大小写的std::lexicographical_compare
比较。
但是,我希望能够相互比较strings
,string_views
以及const char*
相互比较,以获得最大的便利和效率。
所以我在想:如果我做一个模板,std::string
有begin
/ end
,std::string_view
有begin
/ end
,......但const char*
没有,甚至不是非成员函数的形式。
所以可以像这样定义自己的begin
/end
重载
namespace std {
const char * begin(const char* str) { return str; }
const char * end(const char* str) { return str + strlen(str); }
}
这样我就可以将所有内容与所有内容进行比较
std::lexicographical_compare(std::begin(a), std::end(a), std::begin(b), std::end(b), icomp );
?
如果没有,我还能如何解决我的问题?