的行为是否std::string::erase(0)
在空字符串上得到了很好的定义。因为cppreference说:
Removes count characters starting at index.
但是对于空字符串,索引 0 处的字符不存在。
的行为是否std::string::erase(0)
在空字符串上得到了很好的定义。因为cppreference说:
Removes count characters starting at index.
但是对于空字符串,索引 0 处的字符不存在。
似乎没问题,因为字符串的大小是0
:
21.4.6.5 basic_string::erase [string::erase]
basic_string<charT,traits,Allocator>& erase(size_type pos = 0, size_type n = npos);
1 要求:
pos <= size()
2 抛出:out_of_range 如果
pos > size()
.
在同一页面上,std::string::erase
我发现了以下几行:
例外
1) std::out_of_range 如果index > size()
.
2-3) (无)