是否有fread()等效于使用vector <char> s或char数组?</char>

时间:2014-05-24 22:27:27

标签: c++ parsing vector

我需要解析一个已经存储在vector<char>中的文件格式,而我能找到的最接近的方法似乎应该是memcpy - 但是,没有&似乎可以通过任何方式设置副本应该从哪里开始的偏移量。

我刚刚在这里遗漏了什么,或者我是否必须采取额外的步骤将数据首先复制到临时载体?或者有一种方法更适合这项任务吗?

编辑澄清

2 个答案:

答案 0 :(得分:3)

vector<char> vec;复制数据的一种方法是:

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

答案 1 :(得分:0)

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

请参阅http://en.cppreference.com/w/cpp/container/vector/data

(如果你想做的话)

或者,更好的是,请参阅@Matt McNabb关于使用std::copy

的回答