我有一个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对象,这很昂贵)。有没有更有效的方法来做到这一点?