16-插入方法
F.7.3 插入方法
insert()方法使得能够将string对象、字符串数组或几个字符插入到string对象中。这个方法与append()方法相似,但它还接受另一个指定插入位置的参数,该参数可以是位置,也可以是迭代器。数据将被插入到插入点的前面。有几种方法返回一个指向得到的字符串的引用。如果pos1超过了目标字符串结尾,或者pos2超过了要插入的字符串结尾,该方法将引发out_of_range异常。如果得到的字符串长于最大长度,该方法将引发length_error异常。下面是各种insert()方法的原型:
basic_string& insert(size_type pos1, const basic_string& str);
basic_string& insert(size_type pos1, const basic_string& str,
size_type pos2, size_type n);
basic_string& insert(size_type pos, const charT* s, size_type n);
basic_string& insert(size_type pos, const charT* s);
basic_string& insert(size_type pos, size_type n, charT c);
iterator insert(const_iterator p, charT c);
iterator insert(const_iterator p, size_type n, charT c);
template<class InputIterator>
void insert(iterator p, InputIterator first, InputIterator last);
iterator insert(const_iterator p, initializer_list<charT>); // C++11
例如,下面的代码将字符串“former”字符串插入到“The banker.”中b的前面:
string st3("The banker.");
st3.insert(4, "former ");
而下面的代码将字符串“ waltzed”(不包括!,它是第9个字符)插入到“The former banker.”末尾的句号之前:
st3.insert(st3.size() - 1, " waltzed!", 8);