C++ 使用vector时是否有等效的fread()<;char>;还是字符数组?

C++ 使用vector时是否有等效的fread()<;char>;还是字符数组?,c++,parsing,vector,C++,Parsing,Vector,我需要解析一个文件格式,它已经存储在一个向量中,我能找到的最接近它的方法是memcpy——但是,似乎没有任何方法可以设置副本开始位置的偏移量 我是在这里遗漏了什么,还是必须先采取额外的步骤将数据复制到临时向量?或者有没有更适合这项任务的方法 为澄清而编辑std::vector::data()为您提供指向数据的原始指针,然后您可以将其与memcpy一起使用 看 (以防你想这么做) 或者,更好的方法是,参见@Matt McNabb关于使用std::copy一种从向量向量向量中复制数据的方法的回答是:

我需要解析一个文件格式,它已经存储在一个
向量中,我能找到的最接近它的方法是
memcpy
——但是,似乎没有任何方法可以设置副本开始位置的偏移量

我是在这里遗漏了什么,还是必须先采取额外的步骤将数据复制到临时向量?或者有没有更适合这项任务的方法

为澄清而编辑

std::vector::data()
为您提供指向数据的原始指针,然后您可以将其与
memcpy一起使用

(以防你想这么做)


或者,更好的方法是,参见@Matt McNabb关于使用
std::copy

一种从
向量向量向量中复制数据的方法的回答是:

std::copy( vec.begin() + start_offset, vec.begin() + end_offset, dest );

你说“解析”是什么意思?以字符串的形式读取向量(为什么不首先使用
std::string
)并从中解析数据?顺便说一下,如果你有一个向量(不管是什么数据)并且想在“偏移量”X处获取项,那么它只是
你的向量[X]
,要获取指针,请使用
&一些向量[X]
。您是否尝试过添加?能否提供一个实际的示例,说明您想要做什么?也许给我们一个版本,您可以“采取额外步骤将数据复制到临时版本”,这样我们至少可以看到您想要的行为。英语比C++更不清晰地描述C++程序。@约阿希姆-谢谢,这正是我所要找的!我在内存中有一个需要解析的文件格式,虽然我知道我的_vector.data()会给我一个指向第一个条目的指针,但我不知道如何偏移它…比如说,从位置[x]开始。是的,我知道-但问题是要得到向量中第一个元素以外的位置。显然,当涉及到指针和指针地址时,我还有一点需要学习pYup,你正在寻找指针算法:例如:
myvec.data()+offset
,这也很好知道-我没意识到它这么简单。我知道我可以将一系列字符从一个偏移量的向量复制到另一个向量,然后将其数据方法与memcpy一起使用,但这看起来像是一个(希望如此)不必要的额外步骤。@Digital_Utopia我想你误解了,我建议使用
std::copy
而不是
memcpy
dest
是您要复制到的位置(无论您作为memcpy的第一个参数是什么)。很抱歉,我误读了。我现在明白你的意思了,谢谢你用另一种方式来说明!