固定大小的std :: span vs std :: array

时间:2018-06-05 14:02:30

标签: c++ stl stdarray c++20

C ++ 20包括std::span, which "describes an object that can refer to a contiguous sequence of objects with the first element of the sequence at position zero"。它的界面非常接近std::array,虽然它支持动态范围和固定范围。

明显的区别是std::array拥有其元素(因此它的析构函数会破坏它们)而std::span没有。

array可以使用其他任何内容span吗?

1 个答案:

答案 0 :(得分:8)

spanarray,因为指针是值。

int是否可以使用int*而不是int

如果您扫描代码库并用int*替换每个*,那么即使您在每个点都添加了int*,您也会拥有完全无意义的代码库。 - 使用std::array。如果您扫描代码库并用std::span替换每个<0x00>,则情况也是如此。

指针和价值观是不同的东西。你可以跳过篮球并尝试处理指针,好像它们是他们指向的东西的价值,但试图这样做通常很困难,结果往往是不连贯的。