将字符向量的向量传递给字符**

Pass vector of char vectors to char**

本文关键字:向量 字符      更新时间:2023-10-16

是否可以将std::vector<std::vector<char>>传递给函数void doSomething(char** arr)例如存储一堆路径

std::vector<char> vecvoid func(char *str)

vec.assign(64, ' ');

函数调用:func(vec.data());

不是直接的,因为向量的向量不会将数组存储到其子数据地址。所以你必须构建这个数组

std::vector<char*> temp(vec.size);
for(unsigned int i=0;i<vec.size();i++) {
    temp[i] = vec[i].data();
}
doSomething(temp.data());

完整示例:

std::vector<std::vector<char>> vec(16, std::vector<char>(255));
std::vector<char*> temp(vec.size());
for(unsigned int i=0;i<vec.size();i++) 
{
    temp[i] = vec[i].data();
}
doSomething(temp.data());

谢谢加利内特!