同时在高效投射时写出数组

时间:2014-04-24 20:21:26

标签: arrays file casting ostream

我有一个long double的数组。我想把它写成double的数组,但是我不想先创建double数组(我没有内存),我担心性能

我的(幼稚)解决方案:

 file.open(filename.c_str(), std::ios::binary | std::ios::out);
 if (file.is_open())
 {
    for (auto& i : out)
    {
        T2 ni = static_cast<T2>(i);
        file.write(reinterpret_cast<const char*>(&ni), static_cast<size_t>(sizeof(T2)));
    }
    file.close();
 }

但是,对于我试图写出的数组,我将调用file.write 630,000,000次(因为file.write在每个实例化上创建一个sentry对象,这很昂贵)。有没有更有效的方法来做到这一点?

0 个答案:

没有答案
相关问题