API需要一个以零结尾的c-字符串数组(char*)。数组本身将以空指针(nullptr)结束。
发布于 2020-03-06 21:31:56
如何使用std::transform?
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
int main()
{
std::vector<std::string> v = {"asd","qwe"};
const char** c = new const char*[v.size()];
std::transform(v.begin(), v.end(), c, [](const std::string& s) { return s.c_str(); });
for (size_t i=0;i<v.size();i++)
{
std::cout << c[i] << std::endl;
}
delete[] c;
return 0;
}
但是请注意,数组(此处为c
)应该与向量(此处为v
)位于相同的范围内,或者在数组(c
)的使用结束之前不应销毁该向量。
如果您希望使用char**
而不是const char**
,则可以使用.data()
而不是.c_str()
https://stackoverflow.com/questions/60574609
复制相似问题