[英]how do you split an array in c++?
我試圖做一個簡單的字符串拆分功能,但是我在返回拆分字符串時遇到問題。
我把字符串分成字符串s1,s2,s3。 如何返回{s1,s2,s3}
? 即時通訊使用方括號,但編譯器告訴我
expected primary-expression before '{' token
expected `;' before '{' token
expected `;' before '}' token
即使似乎沒有任何問題。 是否正在做{s1,s2,s3}
?
您應該填充一個std::vector
並返回它。
std::vector<std::string> tokenize(/*...*/)
{
std::vector<std::string> result;
// ...
result.push_back(s); // s: s1 - s3
// ...
return result;
}
請注意,您實際上不應該具有變量s1
, s2
或s3
,或者只是將過程限制為三個輸出。 您應該在字符串中循環,將結果推入向量。
不。 您必須將字符串放在適當的容器中,該容器將由函數返回。 您可以使用例如std::vector<std::string>
:
std::vector<std::string> YourFunction(/* ... */)
{
std::vector<std::string> ret;
// ...
ret.push_back(s); // you should call this for each string
// ...
return ret;
}
多虧了RVO,它不應該看起來那么重。
那根本不是一個有效的語法。 如果您使用的是C ++ 0x,則可以返回std::make_tuple(s1, s2, s3)
,或者(更明智的是)返回std::vector<std::string>
。
您可能想返回類型vector<string>
。 然后在函數中創建一個向量,並將其作為值返回。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.