24 template<
typename Type>
27 Type min{}, max{}, mean{}, median{}, firstQuartile{}, thirdQuartile{};
31 template<
typename DataInputIterator>
32 BoxStats(DataInputIterator begin, DataInputIterator end)
37 template<
typename DataInputIterator>
38 void compute(DataInputIterator begin, DataInputIterator end)
40 if (std::distance(begin, end) < 1)
51 std::vector<Type> vec_val(begin, end);
52 std::sort(vec_val.begin(), vec_val.end());
54 max = vec_val[vec_val.size() - 1];
55 mean = accumulate(vec_val.begin(), vec_val.end(), Type(0)) /
static_cast<Type
>(vec_val.size());
56 median = vec_val[vec_val.size() / 2];
57 firstQuartile = vec_val[vec_val.size() / 4];
58 thirdQuartile = vec_val[(vec_val.size() * 3) / 4];
62 template<
typename Type>
63 inline std::ostream& operator<<(std::ostream& os,
const BoxStats<Type> obj)
65 os <<
"\t min: " << obj.min