在 C++ 中,与 Python 的 dp = [0 for _ in range(size)] 功能等价的代码是创建一个长度为 size、所有元素初始化为 0 的数组或容器。具体实现有以下几种方式:
1. 使用普通数组(静态/动态)
-
静态数组(长度编译期确定时):
int dp[size] = {0}; // 所有元素初始化为 0(仅适用于全局变量或局部数组,size 必须是常量)
注意:局部数组的
size必须是编译期常量(如const int size = 5),C++11 后部分编译器支持变长数组,但不推荐跨平台使用。 -
动态数组(长度运行期确定时,用
new):int* dp = new int[size](); // 加括号表示值初始化,所有元素为 0 // 使用后需手动释放内存,避免泄漏 delete[] dp;
2. 使用标准容器 std::vector(推荐)
vector 是动态数组,支持运行期确定长度,且自动管理内存,更安全灵活:
#include <vector> // 需包含头文件
int size = 10; // 可以是运行期计算的值
std::vector<int> dp(size, 0); // 长度为 size,所有元素初始化为 0- 简化写法:
std::vector<int> dp(size);也可,因为int类型的默认初始化(无参构造)就是0,但显式写0更清晰。
总结
- 若长度固定且较小,可用静态数组
int dp[size] = {0}; - 若长度动态变化(运行期确定),推荐用
std::vector<int> dp(size, 0);(无需手动释放内存,更符合现代 C++ 风格)。