diff options
Diffstat (limited to 'a3/concurrency.cc')
-rw-r--r-- | a3/concurrency.cc | 82 |
1 files changed, 41 insertions, 41 deletions
diff --git a/a3/concurrency.cc b/a3/concurrency.cc index da7b51e..9838212 100644 --- a/a3/concurrency.cc +++ b/a3/concurrency.cc @@ -41,6 +41,47 @@ void measure(const std::string& text, Callable c) } } +template<typename T> +std::vector<T> get_random_vector(std::size_t size, + T min = std::numeric_limits<T>::min(), + T max = std::numeric_limits<T>::max()) +{ + std::default_random_engine generator; + // Randomly generate T-values from the range [min; max] + std::uniform_int_distribution<T> distrib(min, max); + + std::vector<T> v; + v.resize(size); + for(auto& item : v) + { + item = distrib(generator); + } + + return v; +} + +std::vector<std::string> get_random_strings(std::size_t size, + std::size_t length, + char min, char max) +{ + std::default_random_engine generator; + // Randomly generate T-values from the range [min; max] + std::uniform_int_distribution<char> distrib(min, max); + + std::vector<std::string> v; + v.resize(size); + for(auto& str : v) + { + str.reserve(length); + for(auto i = 0u; i < str.capacity(); ++i) + { + str += distrib(generator); + } + } + + return v; +} + template<typename C, typename T> // requires std::forward_iterator<Iter> requires std:: ranges::input_range<C> @@ -116,47 +157,6 @@ std::vector<const T*> find_all(const C& v, const T& key, std::size_t n) return res; } -template<typename T> -std::vector<T> get_random_vector(std::size_t size, - T min = std::numeric_limits<T>::min(), - T max = std::numeric_limits<T>::max()) -{ - std::default_random_engine generator; - // Randomly generate T-values from the range [min; max] - std::uniform_int_distribution<T> distrib(min, max); - - std::vector<T> v; - v.resize(size); - for(auto& item : v) - { - item = distrib(generator); - } - - return v; -} - -std::vector<std::string> get_random_strings(std::size_t size, - std::size_t length, - char min, char max) -{ - std::default_random_engine generator; - // Randomly generate T-values from the range [min; max] - std::uniform_int_distribution<char> distrib(min, max); - - std::vector<std::string> v; - v.resize(size); - for(auto& str : v) - { - str.reserve(length); - for(auto i = 0u; i < str.capacity(); ++i) - { - str += distrib(generator); - } - } - - return v; -} - int main() { { |