c++ - 将未知长度的 char** (c) 转换为 vector<string> (c++)

标签 c++ arrays string vector c-strings

<分区>

如何将 C char** 转换为 C++ vector ?是否有一些内置功能可以用来执行此操作,还是通过一系列迭代步骤来完成它更好?

编辑:由于各种原因,C 数组中的元素数量未知。我可以将其作为另一个参数传递,但这是绝对必要的吗?

最佳答案

您可以简单地使用带有两个迭代器的 std::vector 的构造函数:

const char* arr[] = {"Hello", "Friend", "Monkey", "Face"};
std::vector<std::string> v(std::begin(arr), std::end(arr));

或者如果你真的有一个const char**:

const char** p = arr;
std::vector<std::string> v(p, p + 4);

由于数组到指针的转换,这也可以直接使用 arr 而不是 p

关于c++ - 将未知长度的 char** (c) 转换为 vector<string> (c++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15709585/

相关文章:

sql - 2个数组中具有相同索引的元素的乘积

c - 如何测试指针是否在数组内?

javascript - 获取字符串内的indexOf char javascript

c++ - 如何在迭代无序 map 时从无序 map 中删除多个项目?

arrays - 按相同项目 Ruby 对数组中的子数组进行分组

c++ - 在 C++ 中使用二维数组

ios - 当我在swift中将scond字符串复制到第一个字符串时,如何使用 "0"填充第一个字符串的剩余空间?

javascript - Node js中分割字符串并取出特定元素

c++ - 当用于 Windproc 内部的参数时,HWND 地址会发生变化

c++ - 如何创建一个编译时静态类类型来初始化具有特定值的成员容器?