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)