我有一个指向uint8类型向量的指针。
如何使用此指针并将向量中的数据转换为代表其内容的完整字符串?
答案 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);