gpt4 book ai didi

arrays - 将 C++/CLI 字符串数组转换为字符串向量

转载 作者:行者123 更新时间:2023-12-04 19:05:47 30 4
gpt4 key购买 nike

我在 C++/CLI 中有一个参数,如下所示:

array<String^>^ list

我希望能够将其转换为字符串向量。

我该怎么做呢? C++/CLI 没有我想要的那么好。

最佳答案

MSDN提供了有关如何编码(marshal)数据的一些详细信息。他们还为 msclr::marshal_as 提供了一些标准实现。 w.r.t. std::string .
cli::array稍微复杂一点,这里一般情况的关键是pin首先是数组(这样我们就不会让它在我们背后移动)。在 String^ 的情况下转换,marshal_aspin String适本地。

代码的要点是:

vector<string> marshal_array(cli::array<String^>^ const& src)
{
vector<std::string> result(src->Length);

if (src->Length) {
cli::pin_ptr<String^> pinned = &src[0]; // general case
for (int i = 0; i < src->Length; ++i) {
result[static_cast<size_t>(i)] = marshal_as<string>(src[i]);
}
}

return result;
}

关于arrays - 将 C++/CLI 字符串数组转换为字符串向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25243149/

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