将字符向量转换为字符串的最快方法

Bre*_*men 2 c++ string vector std c++11

我有一个字符向量(实际上是无符号字符):

std::vector<unsigned char> vec;
Run Code Online (Sandbox Code Playgroud)

我想将其转换/复制到字符串对象。我尝试通过以下方式做到这一点:

std::string requestedName;

for (auto letter : vec)
{
    requestedName.append((char)letter);
}
Run Code Online (Sandbox Code Playgroud)

但编译器表示这种转换是不可能的。我愿意提供所有帮助。

Cor*_*mer 5

您可以使用运算符+=来执行此连接

std::vector<unsigned char> vec {'a', 'b', 'c', 'd'};
std::string requestedName;
for (auto letter : vec)
    requestedName += letter;
Run Code Online (Sandbox Code Playgroud)

工作演示

另外,您可以使用std::string构造函数的以下重载,而不是在循环中连接

std::vector<unsigned char> vec {'a', 'b', 'c', 'd'};
std::string requestedName{ vec.begin(), vec.end() };
Run Code Online (Sandbox Code Playgroud)