C++ 如何从std::vector构造平台::数组
我以为是这样的C++ 如何从std::vector构造平台::数组,c++,arrays,c++-cx,C++,Arrays,C++ Cx,我以为是这样的 std::vector<char> array; Platform::Array<char>^ data = ref new Platform::Array<char>(array, array.size()); std::向量数组; 平台::数组^data=ref新平台::数组(Array,Array.size()); 但是说“没有构造函数的实例与参数列表匹配”您应该发送指向的构造函数的指针,并且std::vector是类,而不是数组 P
std::vector<char> array;
Platform::Array<char>^ data = ref new Platform::Array<char>(array, array.size());
std::向量数组;
平台::数组^data=ref新平台::数组(Array,Array.size());
但是说“没有构造函数的实例与参数列表匹配”您应该发送指向的构造函数的指针,并且
std::vector
是类,而不是数组
Platform::Array<char>^ data = ref new Platform::Array<char>(array.data(),
array.size());
Platform::Array^data=ref新平台::数组(Array.data(),
array.size());
如果启用了C++11,或
Platform::Array<char>^ data = ref new Platform::Array<char>(&array[0],
array.size());
Platform::Array^data=ref新平台::数组(&Array[0]),
array.size());
如果不是(访问空向量中的第一个元素是UB,所以当向量为空时,我不知道如何在C++11之前访问底层数组)。您应该发送指向构造函数的指针,并且
std::vector
是类,而不是数组
Platform::Array<char>^ data = ref new Platform::Array<char>(array.data(),
array.size());
Platform::Array^data=ref新平台::数组(Array.data(),
array.size());
如果启用了C++11,或
Platform::Array<char>^ data = ref new Platform::Array<char>(&array[0],
array.size());
Platform::Array^data=ref新平台::数组(&Array[0]),
array.size());
如果不是(UB在空向量中访问第一个元素,那么我不知道如何在C++ 11之前,当向量为空时访问底层数组)。< /P>在C++中构造一个指向第一个元素的指针,而不是控制序列的结尾。取消指针将产生UB,但我假设
c'tor知道如何处理零大小的输入。 Platform::Array