diff options
| author | Bent Bisballe Nyeng <deva@aasimon.org> | 2023-07-27 18:02:16 +0200 | 
|---|---|---|
| committer | Bent Bisballe Nyeng <deva@aasimon.org> | 2023-07-27 18:12:27 +0200 | 
| commit | 9577d5bc1a9c91a54d390fe888ee56d393e91417 (patch) | |
| tree | bcf41d08bed21d12bda967cc89408aecdea577ea /a3/concurrency.cc | |
| parent | b91be737efcfed6ed5bebbe07d03527aa878f963 (diff) | |
A3: Concurrency exercise..
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()  {  	{ | 
