Skip to main content
Code Review

Return to Answer

replaced http://stackoverflow.com/ with https://stackoverflow.com/
Source Link

I however, do not trust the built in types and have decided to stick to <cstdint>, I have put in the std::s before these types and also decided to std:: rather than using namespace std, which I'm sure is a subject that has been discussed enough already has been discussed enough already

I however, do not trust the built in types and have decided to stick to <cstdint>, I have put in the std::s before these types and also decided to std:: rather than using namespace std, which I'm sure is a subject that has been discussed enough already

I however, do not trust the built in types and have decided to stick to <cstdint>, I have put in the std::s before these types and also decided to std:: rather than using namespace std, which I'm sure is a subject that has been discussed enough already

deleted 113 characters in body
Source Link
Nathan
  • 647
  • 3
  • 7
  • 18
#pragma once
#include "stdafx.h"
#include <random>
#include <vector>
#include "IRandom.h"
namespace ConsoleApplicationCpp
{
 class Random : public IRandom
 {
 std::mt19937 randomNumberGenerator;
 std::uniform_real_distribution<std::double_t> realDistribution;
 std::uniform_int_distribution<std::int32_t> byteDistribution;
 public:
 Random(std::uint_least32_t seed);
 Random() : Random(std::_Random_device()) {};
 std::int32_t Next() override;
 std::int32_t Next(std::int32_t maxValue) override;
 std::int32_t Next(std::int32_t minValue, std::int32_t maxValue) override;
 std::double_t NextDouble() override;
 std::double_t NextDouble(std::double_t minValue, std::double_t maxValue) override;
 void NextBytes(std::vector<std::uint8_t>& buffer) override;
 };
}
#include "stdafx.h"
#include <cstdint>
#include <random>
#include "Random.h"
namespace ConsoleApplicationCpp
{
 Random::Random(std::uint_least32_t seed)
 : randomNumberGenerator(seed),
 realDistribution(),
 byteDistribution(0, 256)
 {
 }
 std::int32_t Random::Next()
 {
 return this->Next(0, std::numeric_limits<std::int32_t>::max());
 }
 std::int32_t Random::Next(std::int32_t maxValue)
 {
 return this->Next(0, maxValue);
 }
 std::int32_t Random::Next(std::int32_t minValue, std::int32_t maxValue)
 {
 if (minValue < 0 || maxValue < minValue)
 {
 throw 
 std::invalid_argument("minValue and maxValue must be non-negative. maxValue must be greater than minvalue");
 }
 std::uniform_int_distribution<std::int32_t> distribution(minValue, maxValue);
 return distribution(this->randomNumberGenerator);
 }
 std::double_t Random::NextDouble()
 {
 return this->realDistribution>NextDouble(this->randomNumberGenerator0.0, 1.0);
 }
 std::double_t Random::NextDouble(std::double_t minValue, std::double_t maxValue)
 {
 if (minValue < 0.0 || maxValue < minValue)
 {
 throw
 std::invalid_argument("minValue and maxValue must be non-negative. maxValue must be greater than minvalue");
 }
 std::uniform_real_distribution<std::double_t> distribution(minValue, minValuemaxValue);
 return distribution(this->randomNumberGenerator);
 }
 void Random::NextBytes(std::vector<std::uint8_t>& buffer)
 {
 for (auto &i : buffer)
 {
 i = static_cast<std::uint8_t>(byteDistribution(this->randomNumberGenerator));
 }
 }
}
#pragma once
#include "stdafx.h"
#include <random>
#include <vector>
#include "IRandom.h"
namespace ConsoleApplicationCpp
{
 class Random : public IRandom
 {
 std::mt19937 randomNumberGenerator;
 std::uniform_real_distribution<std::double_t> realDistribution;
 std::uniform_int_distribution<std::int32_t> byteDistribution;
 public:
 Random(std::uint_least32_t seed);
 Random() : Random(std::_Random_device()) {};
 std::int32_t Next() override;
 std::int32_t Next(std::int32_t maxValue) override;
 std::int32_t Next(std::int32_t minValue, std::int32_t maxValue) override;
 std::double_t NextDouble() override;
 std::double_t NextDouble(std::double_t minValue, std::double_t maxValue) override;
 void NextBytes(std::vector<std::uint8_t>& buffer) override;
 };
}
#include "stdafx.h"
#include <cstdint>
#include <random>
#include "Random.h"
namespace ConsoleApplicationCpp
{
 Random::Random(std::uint_least32_t seed)
 : randomNumberGenerator(seed),
 realDistribution(),
 byteDistribution(0, 256)
 {
 }
 std::int32_t Random::Next()
 {
 return this->Next(0, std::numeric_limits<std::int32_t>::max());
 }
 std::int32_t Random::Next(std::int32_t maxValue)
 {
 return this->Next(0, maxValue);
 }
 std::int32_t Random::Next(std::int32_t minValue, std::int32_t maxValue)
 {
 if (minValue < 0 || maxValue < minValue)
 {
 throw 
 std::invalid_argument("minValue and maxValue must be non-negative. maxValue must be greater than minvalue");
 }
 std::uniform_int_distribution<std::int32_t> distribution(minValue, maxValue);
 return distribution(this->randomNumberGenerator);
 }
 std::double_t Random::NextDouble()
 {
 return this->realDistribution(this->randomNumberGenerator);
 }
 std::double_t Random::NextDouble(std::double_t minValue, std::double_t maxValue)
 {
 if (minValue < 0.0 || maxValue < minValue)
 {
 throw
 std::invalid_argument("minValue and maxValue must be non-negative. maxValue must be greater than minvalue");
 }
 std::uniform_real_distribution<std::double_t> distribution(minValue, minValue);
 return distribution(this->randomNumberGenerator);
 }
 void Random::NextBytes(std::vector<std::uint8_t>& buffer)
 {
 for (auto &i : buffer)
 {
 i = static_cast<std::uint8_t>(byteDistribution(this->randomNumberGenerator));
 }
 }
}
#pragma once
#include "stdafx.h"
#include <random>
#include <vector>
#include "IRandom.h"
namespace ConsoleApplicationCpp
{
 class Random : public IRandom
 {
 std::mt19937 randomNumberGenerator;
 std::uniform_int_distribution<std::int32_t> byteDistribution;
 public:
 Random(std::uint_least32_t seed);
 Random() : Random(std::_Random_device()) {};
 std::int32_t Next() override;
 std::int32_t Next(std::int32_t maxValue) override;
 std::int32_t Next(std::int32_t minValue, std::int32_t maxValue) override;
 std::double_t NextDouble() override;
 std::double_t NextDouble(std::double_t minValue, std::double_t maxValue) override;
 void NextBytes(std::vector<std::uint8_t>& buffer) override;
 };
}
#include "stdafx.h"
#include <cstdint>
#include <random>
#include "Random.h"
namespace ConsoleApplicationCpp
{
 Random::Random(std::uint_least32_t seed)
 : randomNumberGenerator(seed),
 byteDistribution(0, 256)
 {
 }
 std::int32_t Random::Next()
 {
 return this->Next(0, std::numeric_limits<std::int32_t>::max());
 }
 std::int32_t Random::Next(std::int32_t maxValue)
 {
 return this->Next(0, maxValue);
 }
 std::int32_t Random::Next(std::int32_t minValue, std::int32_t maxValue)
 {
 if (minValue < 0 || maxValue < minValue)
 {
 throw 
 std::invalid_argument("minValue and maxValue must be non-negative. maxValue must be greater than minvalue");
 }
 std::uniform_int_distribution<std::int32_t> distribution(minValue, maxValue);
 return distribution(this->randomNumberGenerator);
 }
 std::double_t Random::NextDouble()
 {
 return this->NextDouble(0.0, 1.0);
 }
 std::double_t Random::NextDouble(std::double_t minValue, std::double_t maxValue)
 {
 if (minValue < 0.0 || maxValue < minValue)
 {
 throw
 std::invalid_argument("minValue and maxValue must be non-negative. maxValue must be greater than minvalue");
 }
 std::uniform_real_distribution<std::double_t> distribution(minValue, maxValue);
 return distribution(this->randomNumberGenerator);
 }
 void Random::NextBytes(std::vector<std::uint8_t>& buffer)
 {
 for (auto &i : buffer)
 {
 i = static_cast<std::uint8_t>(byteDistribution(this->randomNumberGenerator));
 }
 }
}
deleted 10 characters in body
Source Link
Nathan
  • 647
  • 3
  • 7
  • 18
#include "stdafx.h"
#include <cstdint>
#include <random>
#include "Random.h"
namespace ConsoleApplicationCpp
{
 Random::Random(std::uint_least32_t seed)
 : randomNumberGenerator(seed),
 realDistribution(),
 byteDistribution(0, 256)
 {
 }
 std::int32_t Random::Next()
 {
 return this->Next(0, std::numeric_limits<std::int32_t>::max());
 }
 std::int32_t Random::Next(std::int32_t maxValue)
 {
 return this->Next(0, maxValue);
 }
 std::int32_t Random::Next(std::int32_t minValue, std::int32_t maxValue)
 {
 if (minValue < 0 || maxValue < minValue)
 {
 throw 
 std::invalid_argument("minValue and maxValue must be non-negative. maxValue must be greater than minvalue");
 }
 std::uniform_int_distribution<std::int32_t> distribution(minValue, maxValue);
 return distribution(this->randomNumberGenerator);
 }
 std::double_t Random::NextDouble()
 {
 return this->realDistribution(this->randomNumberGenerator);
 }
 std::double_t Random::NextDouble(std::double_t minValue, std::double_t maxValue)
 {
 if (maxValueminValue < minValue)
0.0 || maxValue < minValue)
 {
 throw
 std::invalid_argument("maxValue"minValue and maxValue must be non-negative. maxValue must be greater than minvalue");
 }
 std::uniform_real_distribution<std::double_t> distribution(minValue, minValue);
 return this->realDistributiondistribution(this->randomNumberGenerator);
 }
 void Random::NextBytes(std::vector<std::uint8_t>& buffer)
 {
 for (auto &i : buffer)
 {
 i = static_cast<std::uint8_t>(byteDistribution(this->randomNumberGenerator));
 }
 }
}
#include "stdafx.h"
#include <cstdint>
#include <random>
#include "Random.h"
namespace ConsoleApplicationCpp
{
 Random::Random(std::uint_least32_t seed)
 : randomNumberGenerator(seed),
 realDistribution(),
 byteDistribution(0, 256)
 {
 }
 std::int32_t Random::Next()
 {
 return this->Next(0, std::numeric_limits<std::int32_t>::max());
 }
 std::int32_t Random::Next(std::int32_t maxValue)
 {
 return this->Next(0, maxValue);
 }
 std::int32_t Random::Next(std::int32_t minValue, std::int32_t maxValue)
 {
 if (minValue < 0 || maxValue < minValue)
 {
 throw 
 std::invalid_argument("minValue and maxValue must be non-negative. maxValue must be greater than minvalue");
 }
 std::uniform_int_distribution<std::int32_t> distribution(minValue, maxValue);
 return distribution(this->randomNumberGenerator);
 }
 std::double_t Random::NextDouble()
 {
 return this->realDistribution(this->randomNumberGenerator);
 }
 std::double_t Random::NextDouble(std::double_t minValue, std::double_t maxValue)
 {
 if (maxValue < minValue)
 {
 throw
 std::invalid_argument("maxValue must be greater than minvalue");
 }
 std::uniform_real_distribution<std::double_t> distribution(minValue, minValue);
 return this->realDistribution(this->randomNumberGenerator);
 }
 void Random::NextBytes(std::vector<std::uint8_t>& buffer)
 {
 for (auto &i : buffer)
 {
 i = static_cast<std::uint8_t>(byteDistribution(this->randomNumberGenerator));
 }
 }
}
#include "stdafx.h"
#include <cstdint>
#include <random>
#include "Random.h"
namespace ConsoleApplicationCpp
{
 Random::Random(std::uint_least32_t seed)
 : randomNumberGenerator(seed),
 realDistribution(),
 byteDistribution(0, 256)
 {
 }
 std::int32_t Random::Next()
 {
 return this->Next(0, std::numeric_limits<std::int32_t>::max());
 }
 std::int32_t Random::Next(std::int32_t maxValue)
 {
 return this->Next(0, maxValue);
 }
 std::int32_t Random::Next(std::int32_t minValue, std::int32_t maxValue)
 {
 if (minValue < 0 || maxValue < minValue)
 {
 throw 
 std::invalid_argument("minValue and maxValue must be non-negative. maxValue must be greater than minvalue");
 }
 std::uniform_int_distribution<std::int32_t> distribution(minValue, maxValue);
 return distribution(this->randomNumberGenerator);
 }
 std::double_t Random::NextDouble()
 {
 return this->realDistribution(this->randomNumberGenerator);
 }
 std::double_t Random::NextDouble(std::double_t minValue, std::double_t maxValue)
 {
 if (minValue < 0.0 || maxValue < minValue)
 {
 throw
 std::invalid_argument("minValue and maxValue must be non-negative. maxValue must be greater than minvalue");
 }
 std::uniform_real_distribution<std::double_t> distribution(minValue, minValue);
 return distribution(this->randomNumberGenerator);
 }
 void Random::NextBytes(std::vector<std::uint8_t>& buffer)
 {
 for (auto &i : buffer)
 {
 i = static_cast<std::uint8_t>(byteDistribution(this->randomNumberGenerator));
 }
 }
}
added 17 characters in body
Source Link
Jamal
  • 35.2k
  • 13
  • 134
  • 238
Loading
added 305 characters in body
Source Link
Nathan
  • 647
  • 3
  • 7
  • 18
Loading
added 3662 characters in body
Source Link
Nathan
  • 647
  • 3
  • 7
  • 18
Loading
Source Link
Nathan
  • 647
  • 3
  • 7
  • 18
Loading
lang-cpp

AltStyle によって変換されたページ (->オリジナル) /