gpt4 book ai didi

c++ - 如果我使用 Array 而不是 Vector,有什么缺点吗?

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

我用 C++ 编写了一个 MPC Controller ,其中包含一个 Matrix 类,我将数据存储在一个数组中,并使用了 C 内存函数(memcpy、memset 等)。今天我用 c++ vector 替换了数组,我使用复制来移动内存等......我遇到了一个问题,通过用 vector 替换数组,控制信号的计算时间几乎增加了一倍。

如果我使用 alloc、memcpy、memset、free ins c++ 代码,有什么缺点吗?如果有的话是什么?

最佳答案

Vector 在两个方面增加值(value):

  1. 提供 C 数组中不存在的附加功能,例如调整大小、检查当前大小等。您可能会从其接口(interface)到自定义解决方案中找到更好的替代方案。
  2. 捕获一些错误,例如寻址超出 vector 范围的地址。

如果您对专有数据管理感到满意并且对代码质量有信心,则不需要 vector。但是请注意,这可能会带来一些软件问题,例如与 vector 相比,C 数组的可维护性降低(例如, future 的代码可能会访问越界值,即使您当前的代码没有)。

编辑:请参阅@Als 的回答以了解您的情况的可能替代方案(std::array)。

关于c++ - 如果我使用 Array 而不是 Vector,有什么缺点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13561438/

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