字符串:: erase(0)在空字符串上?

时间:2013-07-20 13:09:39

标签: c++ string erase

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

Removes count characters starting at index.

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

2 个答案:

答案 0 :(得分: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()

答案 1 :(得分:4)

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

  

<强>例外
  1)如果index > size(),则std :: out_of_range   2-3)(无)