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

时间:2015-06-11 12:31:28

标签: c++ string c++11 vector std

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

std::vector<unsigned char> vec;

我想把它/它复制到一个字符串对象。我试图通过以下方式做到这一点:

std::string requestedName;

for (auto letter : vec)
{
    requestedName.append((char)letter);
}

但是compiller说这种转换是不可能的。我会帮助你。

1 个答案:

答案 0 :(得分:4)

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

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

Working demo

也可以使用std::string构造函数的以下重载

而不是在循环中连接
std::vector<unsigned char> vec {'a', 'b', 'c', 'd'};
std::string requestedName{ vec.begin(), vec.end() };