C ++将整数字符串转换为整数数组?

时间:2013-02-06 22:00:57

标签: c++ arrays string integer

我正在阅读来自“5 8 12 45 8 13 7”等文件的输入行。

我可以将这些整数直接放入数组中,还是必须先将它们放入字符串中?

如果最初使用字符串是必须的,我该如何将这个整数字符串转换为数组?

输入:“5 8 12 45 8 13 7”=>如此:{5,8,12,45,8,13,7}

1 个答案:

答案 0 :(得分:7)

不,您不需要将它们转换为字符串。使用C ++标准库的容器和算法实际上非常简单(只要分隔符是空格或一系列空格,这就可以工作):

#include <iterator>
#include <iostream>
#include <vector>

int main()
{
    std::vector<int> v;

    // An easy way to read a vector of integers from the standard input
    std::copy(
        std::istream_iterator<int>(std::cin), 
        std::istream_iterator<int>(), 
        std::back_inserter(v)
        );

    // An easy wait to print the vector to the standard output
    std::copy(v.cbegin(), v.cend(), std::ostream_iterator<int>(std::cout, " "));
}