std :: vector шестнадцатеричные значения - PullRequest
4 голосов
/ 13 января 2011

Как вы инициализируете std::vector шестнадцатеричными значениями?Следующий код выдает ошибку:

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

Если у меня есть строковое значение, содержащее код base64, например: "DNQwSinfOUSSWd + U04r23A ==" .... как я могу поместить его в стандарт:: vectorv?

std :: string = "DNQwSinfOUSSWd + U04r23A ==";

Сначала я хочу декодировать его в гекса значения.После этого поместить его в вектор.Может кто-нибудь подскажите, пожалуйста, как декодировать строковое значение, содержащее кодировщик base64, в гекса?

1 Ответ

13 голосов
/ 13 января 2011

(Вы забыли указать свой 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 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...