std::array和之间有什么区别std::vector?您什么时候使用一个?
我一直以来都考虑std:vector使用C数组作为C ++的方式,那么有什么区别呢? 问题来源于stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
我假设您知道std :: array的编译时大小是固定的,而std :: vector的大小是可变的。另外,我假设您知道std :: array不执行动态分配。因此,我将回答您为什么要使用std :: array而不是std :: vector的问题。
您是否发现自己正在这样做:
std::vector vecName(10); 然后,您实际上从未真正增加std :: vector的大小吗?如果是这样,那么std :: array是一个很好的选择。
但是实际上,存在std :: array(与初始值设定项列表耦合)使C样式的数组几乎完全一文不值。它们通常不与std :: vectors竞争;他们与C样式数组竞争更多。
认为这是C ++委员会竭尽全力杀死几乎所有合法使用C样式数组的方法。