将uint8的矢量转换为字符串

时间:2013-07-31 23:28:44

标签: c++ string stdvector stdstring uint8t

我有一个指向uint8类型向量的指针。

如何使用此指针并将向量中的数据转换为代表其内容的完整字符串?

3 个答案:

答案 0 :(得分:19)

您可以使用从std::string获得的序列初始化std::vector<uint8_t>

std::string str(v->begin(), v->end());

不需要检查std::vector<uint8_t>是否为空的任何技巧:如果是,则范围将为空。但是,您可能希望检查指针v是否为空。以上要求它指向一个有效的对象。

答案 1 :(得分:4)

对于那些希望在声明字符串后完成转换的人,你可以使用std :: string :: assign(),例如:

std::string str;
std::vector<uint8_t> v;
str.assign(v.begin(), v.end());

答案 2 :(得分:0)

vector<uint8_t> *p;
string str(
    p && !p->empty() ? &*p->begin()             : NULL,
    p && !p->empty() ? &*p->begin() + p->size() : NULL);