gpt4 book ai didi

c++ - 如何将 vector 转换为 vector

转载 作者:太空狗 更新时间:2023-10-29 19:41:27 25 4
gpt4 key购买 nike

这与How to convert a vector<char*> to a vector<string>/string相反问题。

我有一些与 vector<char*> 一起使用的遗留例程所以我需要转换我的 vector<string> .

这是我得出的结论:

std::vector<char*> charVec(strVec.size(),nullptr);
for (int i=0; i<strVec.size();i++) {
charVec[i]= new char(strVec[i].size()+1);
charVec[i][strVec[i].copy(charVec[i], strVec[i].size())] = '\0';
}

这是正确的吗?

有没有更好的实现方式?


附注当然最后我有:

for (int i=0; i<strVec.size();i++) {
delete charVec[i];
}

最佳答案

更快的方法是

std::vector<const char*> charVec(strVec.size(),nullptr);
for (int i=0; i<strVec.size();i++) {
charVec[i]= strVec[i].c_str();
}

然后使用生成的 vector 。这将为大型数据集节省大量内存分配时间。

关于c++ - 如何将 vector<string> 转换为 vector<char*>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42493101/

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