我需要找到然后删除字符串的一部分(子字符串)。string_view
似乎是个好主意,但我不能让它工作string::erase
:
// guaranteed to return a view into `str`
auto gimme_gimme_gimme(const std::string& str) -> std::string_view;
auto after_midnight(std::string& str)
{
auto man = gimme_gimme_gimme(str);
str.erase(man); // way to hopeful, not a chance though
str.erase(man.begin(), man.end()); // nope
str.erase(std::distance(str.begin(), man.begin()), man.size()); // nope
str.erase(std::distance(str.data(), man.data()), man.size()); // nope again
// for real???
}
这是我想太多了吗?给定一个std::string_view
成一个std::string
如何擦除字符串的那部分?还是我滥用string_view
?