std::string::erase(0)
的行爲是否在空字符串上定義良好?因爲cppreference說:字符串::擦除(0)在一個空字符串?
Removes count characters starting at index.
但是對於空字符串,索引爲0的字符不存在。
std::string::erase(0)
的行爲是否在空字符串上定義良好?因爲cppreference說:字符串::擦除(0)在一個空字符串?
Removes count characters starting at index.
但是對於空字符串,索引爲0的字符不存在。
這似乎是確定的,因爲字符串的大小是0
:
21.4.6.5 basic_string的::刪除[字符串::擦除]
basic_string<charT,traits,Allocator>& erase(size_type pos = 0, size_type n = npos);
1要求:
pos <= size()
2拋出:out_of_range if
pos > size()
。
論std::string::erase
同一頁,我發現這幾行:
例外
1) 的std :: out_of_range如果index > size()
。
2-3)(無)
感謝您的編輯:) –
沒問題。 :-) – 0x499602D2
+1好,我錯過了。 –