开发者社区 问答 正文

std :: array和std :: vector有什么区别?您什么时候使用一个?

std::array和之间有什么区别std::vector?您什么时候使用一个?

我一直以来都考虑std:vector使用C数组作为C ++的方式,那么有什么区别呢? 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-07 23:14:10 629 分享 版权
1 条回答
写回答
取消 提交回答
  • 我假设您知道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样式数组的方法。

    2020-02-07 23:14:26
    赞同 展开评论