6

的行为是否std::string::erase(0)在空字符串上得到了很好的定义。因为cppreference说:

Removes count characters starting at index.

但是对于空字符串,索引 0 处的字符不存在。

4

2 回答 2

9

似乎没问题,因为字符串的大小是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().

于 2013-07-20T13:19:05.093 回答
4

在同一页面上,std::string::erase我发现了以下几行:

例外
1) std::out_of_range 如果index > size().
2-3) (无)

于 2013-07-20T13:14:47.097 回答