使用>>操作者

时间:2016-11-25 05:19:52

标签: c++ c++11

任何人都可以在代码

中向我解释以下行的含义
 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); 

1 个答案:

答案 0 :(得分:5)

由于ss是一个流,>>会重载以从流中进行格式化读取,具体取决于右侧操作数的类型。

因此,while(ss >> temp)将从stringstream读取以空格分隔的整数。这就是您替换&{39; :&#39;与&#39; &#39;以上。当评估为布尔值时,如果读取整数并且在流的末尾false,则为真。

有关详细信息,请参阅示例here