const char*to vector <unsigned char> initalisation

Mr *_*ris 9 c++ initialization vector char visual-c++

我知道使用vector是一种在使用C++和STL时存储二进制数据的好方法.但是对于我的单元测试,我想使用const char*C字符串变量来初始化向量.

我正在尝试使用此处找到的代码变体 - 将(void*)转换为std :: vector <unsigned char> - 执行此操作:

const char* testdata = "the quick brown fox jumps over the lazy dog.";

unsigned char* buffer = (unsigned char*)testdata;
typedef vector<unsigned char> bufferType;

bufferType::size_type size = strlen((const char*)buffer);
bufferType vec(buffer, size);
Run Code Online (Sandbox Code Playgroud)

但是VC++编译器对初始化向量的行不满意,说明:

error C2664: 'std::vector<_Ty>::vector(unsigned int,const _Ty &)' : cannot convert parameter 1 from 'char *' to 'unsigned int'
Run Code Online (Sandbox Code Playgroud)

我很欣赏这个问题的极端性,我已经为上面代码的批评做了充分的准备:)

谢谢,克里斯

Luc*_*ore 13

它应该是

bufferType vec(buffer, buffer + size);
Run Code Online (Sandbox Code Playgroud)

bufferType vec(buffer, size);
Run Code Online (Sandbox Code Playgroud)