std :: vector十六进制值

eli*_*isa 4 c++ hex

如何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.

  • `unsigned char`比`char`更合适. (3认同)