求助,关于随机函数mt19937
  • 板块学术版
  • 楼主The_BJX
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/7/19 20:40
  • 上次更新2023/10/27 19:27:02
查看原帖
求助,关于随机函数mt19937
364027
The_BJX楼主2022/7/19 20:40

rt,写treap,不知道为什么的报错,我看网上都这么写的啊

我的代码

#include <iostream>
#include <vector>
#include <random>
using namespace std;


int n;
int rt;
struct node{
    int w;
    int pri;
    int ct;
    int fa;
    int ls;
    int rs;
};
vector<node> tree;

mt19937 getpri();
int newnode(int w)
{
    int pri=getpri();
    tree.push_back(node{w,pri,1,-1,-1,-1});
    return tree.size()-1;
}
//以下main等省略

然后蜜汁报错:

> Executing task: C/C++: g++.exe 生成活动文件 <

正在启动生成...
C:\msys64\mingw64\bin\g++.exe -g D:\codes\cpp\Treap.cpp -o D:\codes\cpp\Treap.exe
D:\codes\cpp\Treap.cpp: In function 'int newnode(int)':
D:\codes\cpp\Treap.cpp:22:19: error: cannot convert 'std::mt19937' {aka 'std::mersenne_twister_engine<unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>'} to 'int' in initialization
   22 |     int pri=getpri();
      |             ~~~~~~^~
      |                   |
      |                   std::mt19937 {aka std::mersenne_twister_engine<unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>}

生成已完成,但出现错误.
终端进程启动失败(退出代码: -1)。

终端将被任务重用,按任意键关闭。

求谷上大佬解答!!!

2022/7/19 20:40
加载中...