gpt4 book ai didi

c++ - 变长 std::array 像

转载 作者:IT老高 更新时间:2023-10-28 22:20:09 28 4
gpt4 key购买 nike

由于我通常使用的 C++ 编译器允许变长数组(例如,取决于运行时大小的数组),我想知道是否有类似 std::array 的变长数组?当然 std::vector 的大小是可变的,但它在堆上分配,并在需要时重新分配。

我喜欢在运行时定义大小的堆栈分配数组。是否有任何可能具有此功能的 std 模板?也许使用具有固定最大尺寸的 std::vector

最佳答案

目前正在制定两个建议,将运行时固定大小的数组引入 C++,您可能会感兴趣:

  • Runtime-sized arrays with automatic storage duration .这将使运行时大小的数组成为一种语言特性(如在 C11 中)。所以你可以这样做:

      void foo(std::size_t size) {
    int arr[size];
    }
  • C++ Dynamic Arrays .这将为库带来一个新容器,std::dynarray,它在构造时被赋予固定大小。它旨在优化以尽可能在堆栈上分配。

      void foo(std::size_t size) {
    std::dynarray<int> arr(size);
    }

这些都是作为数组扩展技术规范的一部分进行的,该规范将与 C++14 一起发布。

更新:std::dynarray 尚未实现(2021 年 8 月 25 日)。请引用 What is the status on dynarrays?

关于c++ - 变长 std::array 像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20857577/

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