UB求助
  • 板块学术版
  • 楼主Licykoc
  • 当前回复7
  • 已保存回复7
  • 发布时间2023/3/23 21:21
  • 上次更新2023/10/23 20:44:50
查看原帖
UB求助
175456
Licykoc楼主2023/3/23 21:21
#include <bits/stdc++.h>

class Tree {
private:
  int n, cnt = 0, now = 0;
  std::vector<int> ls, rs, root;

  int newnode () {
    ++cnt;
    ls.resize(cnt + 1);
    rs.resize(cnt + 1);
    return cnt;
  }

  int build (int k, int l, int r) {
    if (k == 0) {
      k = newnode();
    }

    if (l == r) {
      return k;
    }

    int mid = (l + r) / 2;
    ls[k] = build(ls[k], l, mid);
    rs[k] = build(rs[k], mid + 1, r);

    return k;
  }

public:
  Tree (int n, int mode) : n(n), root(n + 1) {
    root[0] = build(root[0], 1, n);
  }
};

signed main() {
  Tree fa(5, 0);
  Tree siz(5, 0);
}

这份代码在 C++14(GCC 9) 情况下会RE,但是在 C++17,C++20 却能正常运行,求助哪里有UB?

2023/3/23 21:21
加载中...