添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

std vector string to char **

将一个 std::vector<std::string> 转换为 char** 是一个常见的需求,下面我提供一种方法供你参考。

首先,需要将 std::vector<std::string> 中的每个字符串转换为 char* 类型,这可以通过使用 const char* c_str() 方法实现,如下所示:

std::vector<std::string> vec_str = {"hello", "world", "example"};
std::vector<char*> vec_char;
for (const auto& str : vec_str) {
    vec_char.push_back(const_cast<char*>(str.c_str()));

这里使用了 const_cast 来将 const char* 类型转换为 char* 类型。

接下来,需要将 std::vector<char*> 转换为 char** 类型,可以使用以下代码实现:

char** char_arr = new char*[vec_char.size()];
for (int i = 0; i < vec_char.size(); i++) {
    char_arr[i] = vec_char[i];

在这里,我们首先通过 new 操作符分配了一个 char* 类型数组,大小为 vec_char.size(),然后将 vec_char 中的每个元素赋值给 char_arr 数组的对应元素。

注意,需要在不再使用 char_arr 数组时手动释放它所占用的内存,避免内存泄漏。

希望这个方法能够帮助到你,如果你有任何问题,请随时提出。

  •