关于 inline ,超级快读(fread) 等的疑问?
  • 板块学术版
  • 楼主E_huanJX泛舟客
  • 当前回复39
  • 已保存回复39
  • 发布时间2022/10/21 19:10
  • 上次更新2023/10/27 06:38:49
查看原帖
关于 inline ,超级快读(fread) 等的疑问?
546246
E_huanJX泛舟客楼主2022/10/21 19:10

问题有如下 33 个(如果对任意一个有了解的都可以浇浇我啊,非常感谢!!)

  1. inline 会有副作用吗?(除了递归函数之外的时候使用)导致 WA 或者反而更慢?
  2. 超级快读会比普通快读慢吗?什么情况下会呢?为什么呢?最近在一个小网站交题,原本的代码 TLE ,把超级快读改成普通快读就 AC。代码如下: 超级快读
char buf[1 << 23], *p1 = buf, *p2 = buf;
#define getchar() (p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1 << 23, stdin), p1 == p2) ? EOF : *p1++)
inline int read()
{
    int res = 0;
    bool f = 0; 
    char ch = getchar();
    while (!isdigit(ch))
        f |= (ch == '-'), ch = getchar();
    while (isdigit(ch))
        res = res * 10 + (ch ^ '0'), ch = getchar();
    return f ? -res : res;
}

普通快读

inline int read()
{
    int res = 0;
    bool f = 0; 
    char ch = getchar();
    while (!isdigit(ch))
        f |= (ch == '-'), ch = getchar();
    while (isdigit(ch))
        res = res * 10 + (ch ^ '0'), ch = getchar();
    return f ? -res : res;
}
  1. 之前问过的,关于 unordered_map 和 map 的问题。但是在某天和同学的争论中,他说当元素个数达到 10610^6 级别的时候 unordered_map 哪怕不卡也会比 map 慢。所以想问:(1)当元素个数达到1e6级别的时候 unordered_map 哪怕不卡也会比 map 慢吗?(2)OI比赛中一般会不会卡 unordered_map 呢?

最后补充,非常希望看到这条提问的你能不吝赐教,但如果你对你的回答并没有把握,烦请注明一下自己其实并不确定自己回答的正确性,防止误导我们(我&&其它看到这条提问的人),再次感谢!

2022/10/21 19:10
加载中...