Я пытаюсь создать случайное число с экспоненциальным распределением. Когда я тестировал на простом примере, он работал хорошо. Но когда я создаю его в своем проекте, он не работает. Мой проект включает в себя множество классов с разными объектами. Класс в моем проекте:
Пользователь.ч:
#include<iostream>
#include<queue>
#include<math.h>
#include<random>
#include"Packet.h"
using namespace std;
class User {
protected:
queue<Packet*> PacketList;
const double rnd = 1.0 / 100;
std::default_random_engine generator;
exponential_distribution<> packetArrivalRate(double); // it will be error if "packetArrivalRate(1.0/100)"
public:
void newPacket();
};
Пользователь.cpp:
#include"User.h";
exponential_distribution<> User::packetArrivalRate(double)
{
return exponential_distribution<>(rnd);
}
void User::newPacket()
{
Packet* p = new Packet;
PacketList.push(p);
double time = packetArrivalRate(generator); //this line is error
}
Может ли кто-нибудь помочь мне создать «время» с экспоненциально распределенным случайным числом.
rnd
, хотя он не объявлен. Кажется, должно бытьexponential_distribution<> User::packetArrivalRate(double rnd)
. - person Shafi   schedule 28.07.2017