Cur*_*sJC 2 c++ reference tokenize
我有这个代码
void split(vector<float> &fvec, string str)
{
int place = 0;
for(int i=0; i<str.length(); i++)
{
if(str.at(i) == ' ')
{
fvec.push_back(atoi(str.substr(place,i-place).c_str()));
place=i+1;
}
}
fvec.push_back(atoi(str.substr(place).c_str()));
}
Run Code Online (Sandbox Code Playgroud)
我试图做的是将一个向量的引用传递给方法,所以它拆分字符串我给它浮动而不复制向量...我不想复制向量,因为它将包含1000的数字.
是不是可以通过引用传递一个向量,或者我只是犯了一个愚蠢的错误?
如果它有助于继承代码我测试它
int main (void)
{
vector<float> fvec;
string str = "1 2 2 3.5 1.1";
split(&fvec, str);
cout<<fvec[0];
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这确实是可能的.你只是使用了错误的语法.正确的方法是:
split(fvec, str);
Run Code Online (Sandbox Code Playgroud)
你正在做的是错误的,因为它传递了向量的地址作为预期的参考.
| 归档时间: |
|
| 查看次数: |
451 次 |
| 最近记录: |