C++ Library Extensions 2022.12.09
To help learn modern C++ programming
019-build_subsets.cpp
Go to the documentation of this file.
1#include <tpf_set.hpp>
3#include <tpf_ncrnpr.hpp>
4#include <tpf_output.hpp>
5
6namespace types = tpf::types;
7namespace set = tpf::set;
8namespace crs = tpf::chrono_random;
9namespace cpr = tpf::ncrnpr;
10
12{
13
15
20
21 set_t myset{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
22 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
23 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
24 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
25 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
26 50};
27
28 size_t select_count = 6;
29 auto cmb = cpr::ncr(myset.size(), select_count);
30
31 stream << myset.size() << "_C_" << select_count <<" = " << cmb << tpf::endl;
32
33
35
36 auto subsets = set::build_subsets(myset, select_count);
37
38 stream << "Elapsed: " << sw.elapsed_time<crs::second_t>() << tpf::endl;
39 //stream << subsets << tpf::endl;
40}
41
42int main()
43{
45}
void examples_for_build_subsets()
int main()
std::deque< element_t > set_t
Definition: 061-subsets.cpp:9
std::deque< set_t > sets_t
Definition: 061-subsets.cpp:10
tpf::sstream stream
std::string elapsed_time(bool bReset=true, TimeUnit dummy_time=TimeUnit{}) const
Implements random number generator and stop watch.
std::ratio< 1 > second_t
Implements nCr, nPr.
Definition: tpf_ncrnpr.hpp:64
enable_if_all_in_list_t< types::type_list_t< Type1, Type2 >, integral_list_t, ReturnType > ncr(Type1 nn, Type2 rr)
Definition: tpf_ncrnpr.hpp:390
void build_subsets(ContainerType< ContainerType< EleType, Types... >, OuterTypes... > &SS, ContainerType< EleType, Types... > R, ContainerType< EleType, Types... > S, size_t count)
Definition: tpf_set.hpp:606
Implements set operations.
Definition: tpf_set.hpp:52
Type to string name conversions are defined.
Definition: 31-visit.cpp:7
typename SetTagType::set_t set_t
Definition: tpf_types.hpp:1966
constexpr auto endl
Definition: tpf_output.hpp:973
typename SetTagType::set_of_sets_t set_of_sets_t
Definition: tpf_types.hpp:1972
typename SetTagType::sets_t sets_t
Definition: tpf_types.hpp:1969
Stream output operators << are implemented.
Implements set operations.