Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何从std::vector构造平台::数组_C++_Arrays_C++ Cx - Fatal编程技术网

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,但我假设平台::数组< /COD> C++知道如何处理零大小的输入。取消对该指针的引用将产生UB,但我假设

Platform::Array
c'tor知道如何处理零大小的输入。