summaryrefslogtreecommitdiff
path: root/a3/concurrency.cc
diff options
context:
space:
mode:
authorBent Bisballe Nyeng <deva@aasimon.org>2023-07-27 18:02:16 +0200
committerBent Bisballe Nyeng <deva@aasimon.org>2023-07-27 18:12:27 +0200
commit9577d5bc1a9c91a54d390fe888ee56d393e91417 (patch)
treebcf41d08bed21d12bda967cc89408aecdea577ea /a3/concurrency.cc
parentb91be737efcfed6ed5bebbe07d03527aa878f963 (diff)
A3: Concurrency exercise..
Diffstat (limited to 'a3/concurrency.cc')
-rw-r--r--a3/concurrency.cc82
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()
{
{