社区讨论

警示后人:函数慎用vector传参

P11533[NOISG 2023 Finals] Topical参与者 6已保存回复 7

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
7 条
当前快照
1 份
快照标识符
@mhj0slis
此快照首次捕获于
2025/11/03 18:51
4 个月前
此快照最后确认于
2025/11/03 18:51
4 个月前
查看原帖
CPP
void Update(int id,vector<vector<int>> u){
	for(int i = 1;i<=k;i++)
		c[i] += u[id][i];
}

...

if(h[r[i][top[i]].second] == k)
  Update(r[i][top[i]].second,u),ans++;
CPP
if(h[r[i][top[i]].second] == k){
  for(int l = 1;l<=k;l++)
    c[l] += u[r[i][top[i]].second][l];
  ans++;
}
这两份代码中,第一份代码把计算能力值的部分写成函数了,并且传参中写到了一个二维向量;但是第二份代码中直接在主函数里修改了。
写成函数的版本,比直接修改的版本慢了十倍以上。

回复

7 条回复,欢迎继续交流。

正在加载回复...