c++ - 将 char vector 的 vector 传递给 char**

标签 c++ vector stl char

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

类似于

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

vec.assign(64, ' ');

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

最佳答案

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

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

doSomething(temp.data());

关于c++ - 将 char vector 的 vector 传递给 char**,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30774404/

相关文章:

c++ - 如何在 iOS 应用程序中锁定代码执行

c++使用 vector 作为类私有(private)变量时构造函数的奇怪行为

c++ - 使用 freenect 库的 Apple Mach-O 链接器 (ld) 错误

ruby - 为什么 Ruby cross_product 返回的值与纸上的叉积不同

c++ - 通过迭代器打印 vector 的大小

c++ - "map/set iterators incompatible" map 销毁,取决于构造函数调用

c++ - 将 vector 末尾的删除优化为调整大小

c++ - 检查 bool vector (范围)是否等于 1 和 0 的序列

c++ - STL 容器中的常量和非常量

c++ - 理解 STL 中的仿函数