Samchon Framework for CPP  1.0.0
CaseGenerator.hpp
1 #pragma once
2 #include <samchon/API.hpp>
3 
4 #include <vector>
5 
6 namespace samchon
7 {
8 namespace library
9 {
25  class SAMCHON_FRAMEWORK_API CaseGenerator
26  {
27  protected:
31  size_t n_;
32 
36  size_t r_;
37 
41  size_t size_;
42 
43  std::vector<size_t> dividerArray;
44 
45  public:
46  /* ----------------------------------------------------
47  CONSTRUCTORS
48  ---------------------------------------------------- */
55  CaseGenerator(size_t n, size_t r);
56  virtual ~CaseGenerator() = default;
57 
58  /* ----------------------------------------------------
59  ELEMENT ACCESSORS
60  ---------------------------------------------------- */
66  auto size() const->size_t;
67 
73  virtual auto operator[](size_t) const->std::vector<size_t> = 0;
74 
78  auto at(size_t) const->std::vector<size_t>;
79 
83  auto n() const->size_t;
84 
88  auto r() const->size_t;
89 
90  public:
91  /* ----------------------------------------------------
92  TO_MATRIX
93  ---------------------------------------------------- */
100  auto toMatrix() const->std::vector<std::vector<size_t>>;
101  };
102 };
103 };
Definition: RWMutex.hpp:4
size_t size_
Size, the number of all cases.
size_t r_
R, size of elements of each case.
size_t n_
N, size of the candidates.
Top level namespace of products built from samchon.
Definition: ByteArray.hpp:7