我有一个功能,用于对与自定义比较器一起使用的字符串进行不区分大小写的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 );
?
如果没有,我还能如何解决我的问题?