C++ 字符串::在字符串末尾插入

C++ 字符串::在字符串末尾插入,c++,language-lawyer,C++,Language Lawyer,以下两行在Visual Studio 2005中执行相同的操作: myString.insert(myString.size(),1,myNewChar); 及 第一个字符应该抛出超出范围的异常,还是这是正确的行为?这是正确的行为——您传递的索引是新字符插入点后面位置的索引,而不是之前位置的索引。事实上,C++03标准明确规定(§21.3.5.4/2): 需要 POS1,当对索引感到困惑时,总是考虑琐碎的情况(字符串为零或一个元素),以及如何希望在这种情况下插入。 myString.appen

以下两行在Visual Studio 2005中执行相同的操作:

myString.insert(myString.size(),1,myNewChar);

第一个字符应该抛出超出范围的异常,还是这是正确的行为?

这是正确的行为——您传递的索引是新字符插入点后面位置的索引,而不是之前位置的索引。事实上,C++03标准明确规定(§21.3.5.4/2):


需要<代码> POS1,当对索引感到困惑时,总是考虑琐碎的情况(字符串为零或一个元素),以及如何希望在这种情况下插入。

myString.append(1,myNewChar);