c++ - STL中是否有定长的数组容器,类似限制元素数目的vector,不要用c的原始数组
巴扎黑
巴扎黑 2017-04-17 13:27:23
[C++讨论组]

STL中是否有定长的数组容器,类似限制元素数目的vector,不要用c的原始数组

巴扎黑
巴扎黑

全部回复(4)
伊谢尔伦

一般当你需要使用数组的时候,std::vector是你的第一选择,它在大多数情况下效率都是最高的,如果你需要指定长度的数组,可以使用reserve()预先分配空间,或使用参数为长度的构造函数(参考中的第3个)。例如:

constexpr std::size_t init_size = 100;

std::vector<int> vi1(init_size);

std::vector<int> vi2;
vi2.reserve(init_size);

当然,也有类似于内置的编译时确定长度数组的模板类std::array

PHPz

c++11的array。

初始化时指定vector的元素个数也挺方便的。

迷茫

有std::array啊,很好用的,比内置数组好用多了

ringa_lee

编译期的定长数组肯定用 std::array,但是我感觉题主并不是指这个,而是 C++ 17 新引入的变量指定的数组(这个功能在 C 已经出现很久了),同时它附带了一个容器 std::dynarray 配合使用,构造函数时确定大小,然后无法更改。现在的话,可以用 std::experimental::dynarray,或者是 gsl::dyn_array.

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号