array::data 和 array::front 的用法

usage of array::data and array::front

& array::frontarray::data有区别吗?

ex 1 :

const char* cstring = "Test String";
array<char, 12> carray;
std::memcpy(&carray.front(), cstring, 12);

例 2:

const char* cstring = "Test String";
array<char, 12> carray;
std::memcpy(carray.data(), cstring, 12);

上面两个一样吗?或者array::data有什么特殊用法?

区别只是front() returns a reference to the first element and data() returns指向它的指针。对于零大小数组,前者未定义,后者未指定。对于非零大小的数组,data() 完全等同于 &front().

在这种情况下,您应该更喜欢 data(),因为您需要一个指针,它会为您提供一个指针。