假设我有一个vector<string> input
,我需要将此传递给带有const char**
参数的函数。我的想法是使用unique_ptr
这样的:
const auto output = make_unique<char*>(size(input));
但我似乎无法将aconst unique_ptr<const*>
变成a const char**
。有没有办法做到这一点,或者是一个更简单的选择?
我只是建立一个指向c_str()
字符串的指针的矢量,然后得到一个指向该字符串的指针。
std:vector<const char*> pointers;
pointers.reserve(input.size());
for (const auto& e : input)
pointers.push_back(e.c_str()); // get const char *'s
auto argument = pointers.data(); // get pointer to const char*'s - const char**
或使用 unique_ptr
auto pointers = std::make_unique<const char*[]>(size(input))
for (size_t i = 0; i < input.size(); ++i)
pointers[i]= input[i].c_str(); // get const char *'s
auto argument = pointers.get(); // get pointer to const char*'s - const char**
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句