存储增量下载数据的最佳方式是什么?

问题描述:

通过Chromium's sha1 class的启发,我想到的是使用std存储增量下载的数据:: string的存储增量下载数据的最佳方式是什么?

// pseudo-code 
char buff[BUFF_SIZE]; 
std::string data; 
do { 
    size = ReadInternetFileTo(buff,BUFF_SIZE); 
    data.append(buff,size); 
} while (not_finished); 

任何可预见的问题,用此方法或更好的方法来做到这一点?

应该没问题,但您可能需要考虑绳子而不是绳子。追加到绳子上效率更高,因为它不会承诺保持所有字节连续,这将需要重新分配。

SGI的好老Rope似乎是一个非常适合,如果你的数据的大,你可以使用SGI的STL - 作为他们的文件说,

与C语言字符串,绳索是 合理的表现非常 长字符串,例如编辑缓冲区或 邮件消息。