3
末下面兩行做同樣的事情在Visual Studio 2005:字符串::在插入串
myString.insert(myString.size(),1,myNewChar);
和
myString.append(1,myNewChar);
是第一位的應該拋出out_of_range異常或這是正確的行爲?
末下面兩行做同樣的事情在Visual Studio 2005:字符串::在插入串
myString.insert(myString.size(),1,myNewChar);
和
myString.append(1,myNewChar);
是第一位的應該拋出out_of_range異常或這是正確的行爲?
這是正確的行爲 - 您傳遞的索引是位置後面插入新角色的位置的索引,而不是之前。事實上,C++ 03標準特別說(§21.3.5.4/ 2):
需要
pos1 <= size()
和pos2 <= str.size()
(其中pos1
是在你傳遞索引和pos2 == npos
超載你打電話) - 請注意,這是<=
而不是<
。
當對索引感到困惑時,總是考慮一些普通的情況(帶有零或帶有一個元素的字符串)以及在這種情況下您希望如何插入。 – 2011-06-08 22:23:15