如何std::vector使用十六进制值初始化?以下引发错误:
std::vector<unsigned char> vect ("oc","d4","30");
Run Code Online (Sandbox Code Playgroud)
如果我有一个包含base64代码的字符串值,如:"DNQwSinfOUSSWd + U04r23A =="....如何将它放在std :: vectorv中?
std :: string ="DNQwSinfOUSSWd + U04r23A ==";
我首先要将其解码为hexa值.之后将其放入矢量中.有人可以告诉我如何将包含base64编码器的字符串值解码为hexa吗?
Lig*_*ica 13
(你忘了给你std::vector一个元素类型.我会假设unsigned char.)
在C++ 0x中,您将能够编写:
std::vector<unsigned char> v{ 0x0C, 0xD4, 0x30 };
Run Code Online (Sandbox Code Playgroud)
在C++ 03中你必须写:
std::vector<unsigned char> v;
v.push_back(0x0C);
v.push_back(0xD4);
v.push_back(0x30);
Run Code Online (Sandbox Code Playgroud)
或者,如果您不介意占用空间:
unsigned char values[] = { 0x0C, 0xD4, 0x30 };
std::vector<unsigned char> v(values, values+3);
Run Code Online (Sandbox Code Playgroud)
你也可以看一下boost.assign.
| 归档时间: |
|
| 查看次数: |
3903 次 |
| 最近记录: |