0

& array::front和有什么区别array::data吗?

例 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吗?

4

1 回答 1

2

区别只是front()返回对第一个元素的引用并data()返回指向它的指针。对于零大小的数组,前者未定义,后者未指定。对于非零大小的数组,data()完全等价于&front().

在这种情况下,您应该更喜欢data()仅仅因为您需要一个指针并且它给了您一个指针。

于 2015-08-19T01:42:49.447 回答