FBB::RandBuffer(3bobcat)
random number streambuf
(libbobcat-dev_6.04.00)
2005-2023
NAME
FBB::RandBuffer - std::streambuf generating random numbers
SYNOPSIS
#include <bobcat/randbuf>
Linking option: -lbobcat
DESCRIPTION
FBB:RandBuffer objects may be used as a std::streambuf of
std::istream objects to allow the extraction of random numbers from the
stream.
NAMESPACE
FBB
All constructors, members, operators and manipulators, mentioned in this
man-page, are defined in the namespace FBB.
INHERITS FROM
std::streambuf
CONSTRUCTOR
- RandBuf(int min, int max, size_t seed = 1):
This RandBuf() constructor initializes the random generator. The
seed is used to initialize the random number generator.Random values between
min and max (inclusive) are returned.
Copy and move constructors (and assignment operators) are not available.
`
VIRTUAL MEMBERS
- int underflow():
This function is called by std::istream objects using
RandBuf. It produces the next available random number, separating the
random numbers by one blanks space. Random values between min and max
(inclusive) are returned (see the description of the constructor).
INHERITED MEMBERS
Since the class uses public derivation from
std::streambuf, all members of this class can be used.
EXAMPLE
#include <iostream>
#include <istream>
#include "../randbuf"
using namespace std;
using namespace FBB;
int main(int argc, char **argv)
{
if (argc == 1)
{
cout << "expect: nruns min max seed\n";
return 1;
}
RandBuf rb(stoi(argv[2]), stoi(argv[3]), stoul(argv[4]));
istream istr(&rb);
for (unsigned idx = stoul(argv[1]); idx--; )
{
int c;
if (!(istr >> c))
{
cout << "extraction failed\n";
break;
}
cout << "next: " << c << endl;
}
int count = 0;
while (istr.unget())
count++;
cout << "number of successful unget()-calls: " << count << endl;
istr.clear();
istr >> count;
cout << "and read: " << count << endl;
}
FILES
bobcat/randbuf - defines the class interface
SEE ALSO
bobcat(7), irandstream(3bobcat), randommt(3bobcat),
std::streambuf
BUGS
None Reported.
BOBCAT PROJECT FILES
- https://fbb-git.gitlab.io/bobcat/: gitlab project page;
- bobcat_6.04.00-x.dsc: detached signature;
- bobcat_6.04.00-x.tar.gz: source archive;
- bobcat_6.04.00-x_i386.changes: change log;
- libbobcat1_6.04.00-x_*.deb: debian package containing the
libraries;
- libbobcat1-dev_6.04.00-x_*.deb: debian package containing the
libraries, headers and manual pages;
BOBCAT
Bobcat is an acronym of `Brokken's Own Base Classes And Templates'.
COPYRIGHT
This is free software, distributed under the terms of the
GNU General Public License (GPL).
AUTHOR
Frank B. Brokken (f.b.brokken@rug.nl).