gpt4 book ai didi

c++ - 是否有可能在 C++ 中获取 std::array 的子数组?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:51:40 25 4
gpt4 key购买 nike

我想做这样的事

std::array<int, 5> array1 = {{ ... }};
const std::array<int, 3>& array2 = array1[1:4]; // [x:y] doesn't exist

也就是说,获取一个数组,该数组是另一个数组的一种 View ,而无需复制它。

最佳答案

不,你不能那样做。所有标准库容器都是其数据的唯一所有者,std::array 也不异常(exception)。事实上,std::array 被限制为以这样的方式实现,以便元素存储在类的实际数组成员中,这将不可能使用别名。

有一个关于 array_view 类的提议,该类将表示对连续数据 block 的非拥有 View 。你可以阅读它here .我不知道这个提案的状态(当前的 C++ 标准化过程让我感到困惑)。

关于c++ - 是否有可能在 C++ 中获取 std::array 的子数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36046462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com