如何在此代码中优化数组大小呢?
时间: 2024-10-18 09:16:32 浏览: 10
当前代码中的数组`add_days`大小固定为1000,这可能会浪费内存,尤其是当用户只添加少量额外天数的销售数据时。你可以通过动态分配内存的方式来优化数组大小,只需要在需要的时候添加更多的空间,并在不需要时释放已分配的内存。
一种优化方式是使用`std::vector`,它能自动管理内存,并根据需要动态扩容。以下是使用`std::vector`替换数组的一个例子:
```cpp
#include <iostream>
#include <vector>
std::vector<double> add_days; // 使用std::vector取代固定大小数组
void inputAdditionalDays(int& num_days) {
std::cout << "How many additional days would you like to record: ";
std::cin >> num_days;
add_days.resize(num_days); // 根据用户输入调整vector的大小
for (int i = 0; i < num_days; i++) {
double sales;
std::cout << "Enter sales total for day " << i + 1 << ": ";
std::cin >> sales;
add_days[i] = sales;
}
}
// ...其他部分的代码...
int main() {
// ...初始化其他变量...
int num;
inputAdditionalDays(num);
// ...计算和输出部分...
return 0;
}
```
在这个版本中,`inputAdditionalDays`函数会根据用户输入动态调整`add_days`的大小,当不再需要时,不需要手动释放内存,因为`std::vector`会在适当的时候做这个工作。
阅读全文