c++ - 如何从 std::vector 构建 Platform::Array

标签 c++ arrays c++-cx

我以为是这样的

std::vector<char> array;
Platform::Array<char>^ data = ref new Platform::Array<char>(array, array.size());

但是说“没有构造函数的实例匹配参数列表”

最佳答案

您应该将指针发送给 Platform::Array 的构造函数std::vector 是类,不是数组。

Platform::Array<char>^ data = ref new Platform::Array<char>(array.data(), 
array.size());

如果启用了 C++11,或者

Platform::Array<char>^ data = ref new Platform::Array<char>(&array[0], 
array.size());

如果不是(访问空 vector 中的第一个元素是 UB,所以我不知道当 vector 为空时我们如何在 C++11 之前访问底层数组)。

关于c++ - 如何从 std::vector 构建 Platform::Array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34902026/

相关文章:

UWP C++ ContentDialog PrimaryButtonCommand 或 PrimaryButtonClick

c++ - 无法使用迭代器标签分配实例化模板

c++ - 如何将 boost 绑定(bind)转换或转换为 C 函数指针?

C++ 复制构造函数错误

c# - 为什么我们不能只使用 [][] 而不是 int[][]?

javascript - 为什么当数字的长度大于 15 时,Number() 方法会增加数字的值?

java - 逗号分隔的记录到字符串数组?

visual-studio - 将 Assets 复制到 UWP 应用程序包中

c++ - vector 的 vector 的 vector 之和......整数

user-controls - 将图像而不是流分配给 Windows::UI::Xaml::Controls::Image