C++多维数组声明实现:与Python写法的对比及相关疑问
C++等效实现说明
容器选型结论
你的Python示例中使用的是动态可变长度的嵌套列表,对应C++场景优先选择std::vector实现,不推荐用普通数组:
- 普通数组是固定长度的栈内存结构,长度必须在编译期确定,不支持动态追加元素,和Python列表的特性不匹配
std::vector是C++标准库提供的动态数组容器,支持自动扩容、动态增删元素,和Python列表的行为最接近
等效实现代码
#include <vector> int main() { // 等效Python代码:arr = [[], []],初始化外层vector,包含2个空的int型子vector std::vector<std::vector<int>> arr(2); // 等效Python的循环逻辑 for (int i = 0; i < 2; ++i) { arr[i].push_back(1); // 等效Python的append(1)方法 } return 0; }
补充说明
- 如果后续需要向外层数组新增空子数组,调用
arr.push_back(std::vector<int>())即可,和Python的arr.append([])逻辑完全一致 - 仅当你提前100%确定数组长度不会发生任何变更、且对性能有极致要求时,才考虑使用普通数组或
std::array,常规动态数组场景优先用std::vector
内容的提问来源于stack exchange,提问作者Jailbone
相关产品推荐
相关产品推荐

