int main(){
vector a;
string s;
while(getline(cin,s)){
a=spite(s);
for(vector<string>::size_type i=0;i!=a.size();i++)
cout << a[i] << endl;
}
return 0;
}
vector spite(【如果在这里加上const则可以正常运行】string s){
vector ret;
string::size_type i=0,j=0;
while(i!=s.size()){
while(i!=s.size() &&isspace(s[i]))
i++;
j=i;
while(!isspace(s[j])&&j!=s.size())
j++;
if (i!=j){
ret.push_back(s.substr(i,j-i));
i=j;
}
}
return ret;
}
程序的目的是把一行句子分隔成单词输出 但是运行出现 string subscript out of range错误 如果把split函数中的参数加上const 变成const string则程序可以正常运行 这是为什么呢???