std::string的插入位置
string插入位置是在下标或者迭代器对应元素的前边,我们知道长度为n
的字符串有n+1
的插入位置。
string str("4396");
//s.insert(pos,args)
//args: pos string
string st("here");
for(int i=0;i<str.size()+1;i++)
{
str.insert(i,st);
cout<<str<<endl;
str="4396";
}
长度为4,因此插入的组合有5个。运行结果分别是:
std::string迭代器范围
迭代器的范围为“左闭右开”。所谓左闭右开是区间概念,左边所指元素开始到右边所指元素前一个。
std::string 插入的方法
string str("4396");
//s.insert(pos,args)
//args: pos string
string st("here");
for(int i=0;i<str.size()+1;i++)
{
str.insert(i,st);
cout<<str<<endl;
str="4396";
}
//args: pos string pos maxlen
//string st("here");
for(int i=0;i<str.size()+1;i++)
{
str.insert(i,st,1,3);
cout<<str<<endl;
str="4396";
}
//args: char * cp maxlen
const char * cp="here";
for(int i=0;i<str.size()+1;i++)
{
str.insert(i,cp,3);
cout<<str<<endl;
str="4396";
}
//args: char * cp
//const char * cp="here";
for(int i=0;i<str.size()+1;i++)
{
str.insert(i,cp);
cout<<str<<endl;
str="4396";
}
//args: int n char ch
for(int i=0;i<str.size()+1;i++)
{
str.insert(i,3,'w');
cout<<str<<endl;
str="4396";
}
//args: b e iterator
//const char * cp="here";
for(int i=0;i<str.size()+1;i++)
{
str.insert(str.begin(),st.begin(),st.begin()+1);
cout<<str<<endl;
str="4396";
}
根据所需要的情况自行选取即可,结果如下: