web-dev-qa-db-ja.com

uint8のベクトルを文字列に変換します

Uint8型のベクトルへのポインターがあります。

このポインタを取得して、ベクター内のデータをその内容を表す完全な文字列に変換するにはどうすればよいですか?

14
Mr S

std::stringから取得したシーケンスでstd::vector<uint8_t>を初期化することができます。

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

std::vector<uint8_t>が空であるかどうかを確認するためのトリックを実行する必要はありません。空の場合、範囲は空になります。ただし、ポインタがvであるかどうかを確認することをお勧めします。上記では、有効なオブジェクトを指している必要があります。

24
Dietmar Kühl

変換を実行したい場合after文字列が宣言されている場合は、std :: string :: assign()を使用できます。例:

std::string str;
std::vector<uint8_t> v;
str.assign(v.begin(), v.end());
4
deddebme
vector<uint8_t> *p;
string str(
    p && !p->empty() ? &*p->begin()             : NULL,
    p && !p->empty() ? &*p->begin() + p->size() : NULL);
0
user541686