将字符串解析为int的向量

这个问题在这里已经有了答案:

  • 迭代字符串最优雅的方式[已关闭] 74个答案

  • 你可以使用std::stringstream 。 除了其他包含之外,您需要#include <sstream>

    #include <sstream>
    #include <vector>
    #include <string>
    
    std::string myString = "10 15 20 23";
    std::stringstream iss( myString );
    
    int number;
    std::vector<int> myNumbers;
    while ( iss >> number )
      myNumbers.push_back( number );
    

    std::string myString = "10 15 20 23";
    std::istringstream is( myString );
    std::vector<int> myNumbers( std::istream_iterator<int>( is ), std::istream_iterator<int>() );
    

    或者,如果矢量已经被定义,则代替最后一行

    myNumbers.assign( std::istream_iterator<int>( is ), std::istream_iterator<int>() );
    

    这几乎是现在其他答案的重复。

    #include <iostream>
    #include <vector>
    #include <iterator>
    #include <sstream>
    
    int main(int argc, char* argv[]) {
        std::string s = "1 2 3 4 5";
        std::istringstream iss(s);
        std::vector<int> v{std::istream_iterator<int>(iss),
                           std::istream_iterator<int>()};
        std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
    }
    
    链接地址: http://www.djcxy.com/p/19575.html

    上一篇: parse string to vector of int

    下一篇: Splitting strings in C++