社区讨论
关于map
学术版参与者 4已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @mhk7lm64
- 此快照首次捕获于
- 2025/11/04 14:49 4 个月前
- 此快照最后确认于
- 2025/11/04 14:49 4 个月前
为啥判定一个数是否存在必须用count,直接访问会错啊
e.g.
CPPmap <int, bool> maps[N];
maps[x][y] = 1;
对于这个东西,执行
maps[x].count (y)和maps[x][y]得到的结果有时候不一样啊下面是我遇到问题的完整函数
CPPvoid dijkstra ()
{
while (!q.empty ())
{
int u = q.top ().u, dis = q.top ().dis, f = q.top ().from;
q.pop ();
if (vis[u].size () >= k || vis[u].count (f)) continue;
vis[u][f] = 1;
for (int i = 0; i < (int) g[u].size (); i++)
{
int v = g[u][i].first, w = g[u][i].second;
if (w + dis <= r && vis[v].size () < k && !vis[v].count (f)) {q.push (node {v, w + dis, f});}
}
}
}
CPPvoid dijkstra ()
{
while (!q.empty ())
{
int u = q.top ().u, dis = q.top ().dis, f = q.top ().from;
q.pop ();
if (vis[u].size () >= k || vis[u][f]) continue;
vis[u][f] = 1;
for (int i = 0; i < (int) g[u].size (); i++)
{
int v = g[u][i].first, w = g[u][i].second;
if (w + dis <= r && vis[v].size () < k && !vis[v][f]) {q.push (node {v, w + dis, f});}
}
}
}
这两个代码为什么效果不一样啊
回复
共 5 条回复,欢迎继续交流。
正在加载回复...