gpt4 book ai didi

c++ - 将 STL 字符串数组转换为 const char* 数组的最有效方法是什么?

转载 作者:太空狗 更新时间:2023-10-29 23:22:59 27 4
gpt4 key购买 nike

我们有:

 std::string string_array[2];

string_array[0] = "some data";

string_array[1] = "some more data";

char* cstring_array[2];

将数据从 string_array 复制到 cstring_array 的最有效方法是什么?或者将 string_array 传递给函数,需要“const char* cstring_array[]”?

最佳答案

一个接受 char const * 的函数只写一次接受一个字符串,而不是一个字符串数组。通过 std::string对于这样的函数,只需调用函数 your_string.c_str()作为参数。

编辑:对于一个接受字符串数组的函数,显而易见的选择(至少对我而言)是编写一个最小的前端,让你传递一个 vector<std::string>。 :

// The pre-existing function we want to call.
void func(char const *strings[], size_t num) {
for (size_t i=0;i<num; i++)
std::cout << strings[i] << "\n";
}

// our overload that takes a vector<string>:
void func(std::vector<std::string> const &strings) {
std::vector<char const *> proxies(strings.size());

for (int i=0; i<proxies.size(); i++)
proxies[i] = strings[i].c_str();
func(&proxies[0], proxies.size());
}

关于c++ - 将 STL 字符串数组转换为 const char* 数组的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3207399/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com