gpt4 book ai didi

c++ - 将非 null 终止的 vector 转换为字符串

转载 作者:太空狗 更新时间:2023-10-29 23:29:46 24 4
gpt4 key购买 nike

我有一个非 null 终止的字符 vector ,我如何构造一个新字符串并让它自动插入 \0 到字符串的末尾?

std::vector<char> v;
v.push_back('H');
v.push_back('i');
v.push_back('!');
//v.push_back('\0'); <~ without using this line

std::string a(v.data());
std::string b(v.begin(), v.end()); // same meaning as b(v.data(), v.size())

两者之间正确的构造函数是什么?

最佳答案

std::string a(v.data()); 不正确。构造函数需要一个指向空终止字符序列的指针。不给它一个是未定义的行为。

std::string b(v.begin(), v.end()); 另一方面是完全安全的,会给你一个 std::string 与 vector 内容相同。

关于c++ - 将非 null 终止的 vector<char> 转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45491574/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com