【发布时间】:2012-10-26 02:28:30
【问题描述】:
我有一个向量:
class Element
{
public:
string pathName;
ui64 offsitePtr;
ui64 subPage;
public:
Element(void);
~Element(void);
};
vector<Element> elem;
elem 的大小将控制在 4096 字节以内。在程序结束时,我应该将fwriteelem 转换成二进制文件。我目前使用的解决方案是制作一个字符缓冲区并将elem 中的元素写入其中。我不认为这是一个好主意。还有其他好的想法吗?
【问题讨论】:
-
请在您的代码中额外添加 4 个缩进标签,以便其格式正确。
-
显示与问题相关的代码(即
fwrite调用),并清楚说明问题所在。 -
其他代码是有用的,唯一困扰我的问题是如何将向量中的字符串和无符号长长数据写入二进制文件并快速读取。我将一次读取 4096 个字节。
-
fread无论如何都在缓冲,所以我看不到读取 4096 字节块的速度有很大提高。您应该只阅读您需要的内容,除非您使用此块大小有其他原因。 -
我正在写一个b-树索引。我应该从办公桌上读一页。页面大小为 4096 字节。所以,我应该读取 4096 个字节一次
标签: c++