将包含int的字符串读取到数组的最快方法是什么

时间:2013-05-28 09:25:42

标签: c++ optimization

我有一个文件,其中包含数字作为字符串,如下所示:

1 2
10 22
123 0
125 87

我想把它读成两个昏暗的数组,所以我有

lut[0]={1,2};
lut[1]={10,22};
lut[2]={123,0};
lut[3]={125,87};

在c ++中执行此操作的最快方法是什么

1 个答案:

答案 0 :(得分:2)

与处理器计算相比,任何文件输入/输出都很慢。所以你可以用任何你想要的方式解析文件。运行时间将接近文件输入操作的时间。

代码示例

Ideone

#include <fstream>

const static int N = 1000;

int main()
{
    int lut[N][2];

    std::ifstream f("input_file.txt");

    int index = 0;
    while(!f.eof())
    {
        int l1 = 0;
        int l2 = 0;

        f >> l1 >> l2;

        lut[index][0] = l1;
        lut[index][1] = l2;
        ++index;

        if (index == N)
            break; // WARN
    }

    return 0;
}