std :: vector十六进制值

时间:2011-01-13 10:32:29

标签: c++ hex

如何使用十六进制值初始化std::vector?以下引发错误:

std::vector<unsigned char> vect ("oc","d4","30");

如果我有一个包含base64代码的字符串值,例如:“DNQwSinfOUSSWd + U04r23A ==”....如何将它放在std :: vectorv中?

std :: string =“DNQwSinfOUSSWd + U04r23A ==”;

我首先要将其解码为hexa值。之后将其放入矢量中。有人可以告诉我如何将包含base64编码器的字符串值解码为hexa吗?

1 个答案:

答案 0 :(得分:13)

(您忘了给std::vector一个元素类型。我会假设unsigned char。)

在C ++ 0x中,你可以写:

std::vector<unsigned char> v{ 0x0C, 0xD4, 0x30 };

在C ++ 03中你必须写:

std::vector<unsigned char> v;
v.push_back(0x0C);
v.push_back(0xD4);
v.push_back(0x30);

或者,如果你不介意占用空间:

unsigned char values[] = { 0x0C, 0xD4, 0x30 };
std::vector<unsigned char> v(values, values+3);

您还可以查看boost.assign