bib*_*ibi 3 c++ stl char stdvector
这与如何将vector <char*>转换为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';
}
Run Code Online (Sandbox Code Playgroud)
它是否正确?
有没有更好的方法来实现它?
ps当然最后我有:
for (int i=0; i<strVec.size();i++) {
delete charVec[i];
}
Run Code Online (Sandbox Code Playgroud)
更快的方法是这样做
std::vector<const char*> charVec(strVec.size(),nullptr);
for (int i=0; i<strVec.size();i++) {
charVec[i]= strVec[i].c_str();
}
Run Code Online (Sandbox Code Playgroud)
然后使用得到的矢量.这将为大型数据集的内存分配节省大量时间.
| 归档时间: |
|
| 查看次数: |
2118 次 |
| 最近记录: |