c++ - 固定大小的 std::span 与 std::array
问题描述
C++20 包括std::span
,它“描述了一个对象,该对象可以引用一个连续的对象序列,该序列的第一个元素位于零位置”。它的界面非常接近std::array
,虽然它支持动态范围以及固定范围。
明显的区别是它std::array
拥有它的元素(因此它的析构函数会破坏它们)而std::span
不是。
还有什么array
不能用的span
吗?
解决方案
span
是array
指向值的指针。
有什么int
可以比int*
不能用的吗?
如果你扫描你的代码库并将每个替换int
为一个,int*
你将拥有一个完全无意义的代码库,即使你*
在每个使用点添加一个int*
. 如果你扫描你的代码库并std::array
用 a替换 every std::span
,情况也是如此。
指针和值是不同的东西。您可以跳过箍并尝试处理指针,就好像它们是它们所指向的东西的值一样,但是尝试这样做通常很困难,并且结果通常是不连贯的。
推荐阅读
- android - 在自定义工具栏上添加前进和后退按钮
- excel - 使用 Range.Characters 属性从 VBA 中 UDF 的返回值更改字体
- node.js - 我需要将 firebase 数据索引到 algolia ,firebase 中用于读取和写入的规则需要身份验证(auth!=null)
- azure-data-factory - 从 SAP Cube 或 Azure 数据工厂中的计算视图引入数据的问题
- javascript - 如何修改 HTMLSelectElement.prototype 的原 setter 函数【在原函数中添加一些额外的逻辑行】?
- python - ADC 的样本数据
- sql - 多嵌套(递归)查询,如继承
- python - 用于异常检测的无监督环境中的分类嵌入
- node.js - 如何将nodejs服务器运行时错误日志存储在文件winston nodejs中
- neural-network - 神经网络:精确的高级训练算法