任何人都可以在代码
中向我解释以下行的含义 while (ss >> temp)
std::string str = "123:234:56:91";
for (int i=0; i<str.length(); i++)
{
if (str[i] == ':')
str[i] = ' ';
}
vector<int> array;
stringstream ss(str);
int temp;
while (ss >> temp)
array.push_back(temp);
答案 0 :(得分:5)
由于ss
是一个流,>>
会重载以从流中进行格式化读取,具体取决于右侧操作数的类型。
因此,while(ss >> temp)
将从stringstream
读取以空格分隔的整数。这就是您替换&{39; :
&#39;与&#39; &#39;以上。当评估为布尔值时,如果读取整数并且在流的末尾
false
,则为真。
有关详细信息,请参阅示例here