Преобразование вектора uint8 в строку
У меня есть указатель на вектор типа uint8.
Как мне взять этот указатель и преобразовать данные в векторе в полную строку, представляющую его содержимое?
3 ответов
вы можете просто инициализировать std::string
с последовательностью, полученной из std::vector<uint8_t>
:
std::string str(v->begin(), v->end());
нет необходимости играть какие-либо трюки, проверяя, является ли std::vector<uint8_t>
пусто: если это так, то диапазон будет пуст. Однако вы можете проверить, является ли указатель v
равно null. Вышеизложенное требует, чтобы он указывал на действительный объект.
для тех, кто хочет сделать преобразование после объявляется строка, вы можете использовать std::string:: assign(), например:
std::string str;
std::vector<uint8_t> v;
str.assign(v.begin(), v.end());
vector<uint8_t> *p;
string str(
p && !p->empty() ? &*p->begin() : NULL,
p && !p->empty() ? &*p->begin() + p->size() : NULL);