Sayonara Player
src
Utils
RandomGenerator.h
1
/* RandomGenerator.h */
2
3
/* Copyright (C) 2011-2020 Michael Lugmair (Lucio Carreras)
4
*
5
* This file is part of sayonara player
6
*
7
* This program is free software: you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License as published by
9
* the Free Software Foundation, either version 3 of the License, or
10
* (at your option) any later version.
11
12
* This program is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU General Public License for more details.
16
17
* You should have received a copy of the GNU General Public License
18
* along with this program. If not, see <http://www.gnu.org/licenses/>.
19
*/
20
21
#ifndef RANDOMGENERATOR_H
22
#define RANDOMGENERATOR_H
23
24
#include "Utils/Pimpl.h"
25
#include <algorithm>
26
#include <random>
27
32
class
RandomGenerator
33
{
34
private
:
35
PIMPL(
RandomGenerator
)
36
37
RandomGenerator
(
const
RandomGenerator
& other);
38
39
public
:
40
RandomGenerator
();
41
~
RandomGenerator
();
42
46
void
updateSeed
();
47
54
int
getNumber
(
int
min,
int
max);
55
56
static
int
getRandomNumber(
int
min,
int
max);
57
static
std::mt19937 getGenerator();
58
};
59
60
namespace
Util
61
{
62
namespace
Algorithm
63
{
64
template
<
class
Container>
65
void
shuffle(Container& container)
66
{
67
std::shuffle(container.begin(), container.end(), RandomGenerator::getGenerator());
68
}
69
}
70
}
71
72
#endif // RANDOMGENERATOR_H
73
RandomGenerator
The RandomGenerator class.
Definition:
RandomGenerator.h:33
RandomGenerator::updateSeed
void updateSeed()
create new seed
RandomGenerator::getNumber
int getNumber(int min, int max)
get a random number
Util
Helper functions.
Definition:
GenreView.h:36
Generated on Wed Jan 6 2021 00:00:00 for Sayonara Player by
1.8.20