我知道有关于这个问题的其他问题,然而,我已经使用了那些资源得出我现在拥有的东西,但是我遇到了一个错误,似乎无法解决。同时,请记住我是一个c++初学者。话虽如此,我有一个包含整数的非常大的字符串,格式如下:newString = "12 -34 50 2 -102 13 78 9"
(实际字符串要大得多)。然后我尝试使用transform()
函数将该字符串转换为int向量:
int convertString(){
istringstream is(newString);
vector<int> intVector;
transform(istream_iterator<string>( is ),
istream_iterator<string>(),
back_inserter( intVector ),
[]( const string &newString ){ return ( stoi( newString ) ); } );//This is the line indicated in the error!
for(int x : intVector )
cout << x << ' '<<endl;
return 0;
}
我遇到的错误是指定的错误行需要一个表达式,有什么办法可以修复这个问题吗?
提前感谢您的帮助,如果有不清楚的地方,请告诉我!
stoi
的 lambda,而不是直接传递stoi
本身? - Red Alertstoi
?它有两个重载,每个重载都有两个默认参数。 - Steve Jessop