std::vector<uint8_t> data 和std::array<uint8_t, 8> 区别
时间: 2024-02-25 10:32:21 浏览: 70
stdvector<uint8_t>和std::array<uint8_t, 8>是C++标准库中数组容器的两种不同类型。它们的区别如下:
1. 大小不同:std::vector是一种动态数组,可以根据需要动态增长或缩小其大小。而std::array是一种固定大小的数组,大小在创建时就确定了,无法改变。
2. 内存管理不同:std::vector使用堆上的内存来存储数组元素,因此它的大小可以在运行时动态改变。而std::array使用栈上的内存来存储数组元素,因此它的大小在编译时就确定了。
3. 功能不同:std::vector提供了很多便捷的操作函数,例如添加、删除和访问元素等。而std::array没有提供这些功能,因为它的大小是固定的,无法添加或删除元素。
4. 访问方式不同:std::vector可以通过下标或迭代器来访问元素,而std::array也支持这种方式,同时还可以通过std::array的成员函数at()来访问元素,这个函数会进行边界检查,确保不会访问越界。
综上所述,std::vector适用于需要动态改变大小的情况,而std::array适用于大小固定的情况。根据具体的需求选择合适的容器类型。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [C++11 std::array 用法小结](https://blog.csdn.net/hellokandy/article/details/125880281)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [std::vector<uint8_t>的数据转处理连接成16进制的string](https://blog.csdn.net/weixin_53567931/article/details/128544448)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文