链式前向星与vector为什么vector更耗时间

P3806 【模板】点分治 1

时间圣使·凡 @ 2023-07-10 20:55:27

RT 我用vector超时,童靴说要用链式前向星,为啥链式前向星更快捏?


by ud2_ @ 2023-07-10 20:59:05

二维 vector 存图一直很慢。试试先用链表输入数据,然后转存到一维 vector 用于运算,或许能比全程用链表更快。


by catandcode @ 2023-07-10 21:04:43

@时间圣使·凡 vector 有 5,6 的常数。


by 时间圣使·凡 @ 2023-07-10 21:06:46

@catandcode 5,6?


by 时间圣使·凡 @ 2023-07-10 21:07:18

@ud2_ 嗦嘎


by catandcode @ 2023-07-10 21:07:28

@时间圣使·凡 大概五到六


by 时间圣使·凡 @ 2023-07-10 21:11:21

@catandcode 啥意思,是会多申请一些没用的空间吗


by catandcode @ 2023-07-10 21:14:26

@时间圣使·凡 时间常数,每次操作大概相当于五六次(我也不知道这样解释是不是完全正确)


by 时间圣使·凡 @ 2023-07-10 21:20:21

@catandcode 我看的这个说什么Cache命中率下降(虽然我不大清楚是啥),但看起来好像是一维的vector更快,二维的vector更慢(好像和时间常数没什么关系?)


by 时间圣使·凡 @ 2023-07-10 21:24:54

大概是内存存储方式导致的(雾)


by catandcode @ 2023-07-10 21:30:07

@时间圣使·凡 有没有可能,就是我说常数是指他的结果,不是原因。一维 vector 也比数组慢,vector push_back 函数的运行时间也比前向星的 add 函数长,有一些构造函数可以优化这一点,但不容易写,实际意义不大。


| 下一页