审查这段生成的账本导入路径。
原子地追加一批非负金额,把失败保留给调用方,并自动管理临时存储。
C++
void append_amounts(
std::vector<int>& ledger,
const std::vector<int>& input) noexcept {
auto* scratch = new int[input.size()];
for (std::size_t i = 0; i < input.size(); ++i) {
ledger.push_back(input[i]);
if (input[i] < 0) {
throw std::invalid_argument("negative amount");
}
scratch[i] = input[i];
}
delete[] scratch;
}
void import(std::vector<int>& ledger, const std::vector<int>& input) {
try {
append_amounts(ledger, input);
} catch (std::exception error) {
std::cerr << error.what() << '\n';
}
}
生成代码仅作示例,不代表任何特定模型