请问我可以指点我在这里做的错误事情吗?如果字符串以子字符串开头,使用std :: equal
auto is_start_with = [](std::string const& whole_string, std::string const& starting_substring)->bool{
if (starting_substring.size() > whole_string.size()) return false;
return std::equal(begin(starting_substring), end(starting_substring), begin(whole_string));
};
它总是返回true。
我知道还有很多其他解决方案,但我想知道这里的错误是什么。
编辑:
P.S.我在其他主文件中直接输入字符串,并试用它!
编辑2:
我删除了两下变换比较之前和它的工作!
std::transform(std::begin(fd_name), std::end(fd_name), std::begin(fd_name), ::tolower);
std::transform(std::begin(type_id), std::end(type_id), std::begin(type_id_lower), ::tolower);
向我们展示了一些测试用例,乍一看似乎很确定。 – 101010
看起来[很好](http://coliru.stacked-crooked.com/a/60aa2f0fc14400ad)给我。 – TartanLlama
调试过程中的屏幕截图被添加了 –