#include #include #include double median(std::vector vec) { std::vector::size_type mid, size; size = vec.size(); if (size == 0) throw std::domain_error("median of an empty vector"); sort(vec.begin(), vec.end()); mid = size / 2; return size % 2 == 0 ? (vec[mid] + vec[mid - 1]) / 2 : vec[mid]; }