【发布时间】:2020-03-12 08:11:08
【问题描述】:
所以我试图将二进制文件加载到 Vector 中,这样我就可以像 Buffer 一样使用它。
ifstream binaryFile;
vector<unsigned char> fileBuffer(istreambuf_iterator<char>(binaryFile), {});
vector<unsigned char>::iterator fileIter = fileBuffer.begin();
现在我的问题是,如果我使用fileIter 变量,我可以访问fileBuffer 向量中的所有元素吗?
我想知道,因为我只需要在某些位置编辑fileBuffer 的内容,这就是我首先使用迭代器的原因。
简而言之,我想知道矢量fileBuffer 的内容是否会改变,根据对fileIter 所做的编辑,代码如下
*(fileIter + 2) = 'a';
我已经研究过这个话题,但我还没有找到答案。
【问题讨论】:
-
听起来你希望通过修改向量来修改文件的内容,但是它们之间没有任何联系。
-
您通过迭代器而不是文件修改
fileBuffer(即向量)。 -
@molbdnilo 我想修改矢量,然后将矢量另存为新文件。
-
@youngtrashbag 我的意思是,您只会编辑矢量,而不是文件。向量是文件内容的副本。
-
@youngtrashbag 我认为您只需要这样做: 1. 将文件读入向量中。 2. 编辑向量的内容。 3. 将向量写入文件(或其他文件?)。
标签: c++ vector iterator buffer