diff --git a/Lab3/README.md b/Lab3/README.md new file mode 100644 index 0000000..d0ca35f --- /dev/null +++ b/Lab3/README.md @@ -0,0 +1,15 @@ +# CCIoT Homework Lab 3 + +## Slide 6 + +### Problem + +Try this out: + +1. Make a vector of pairs (ints); +2. Sort the vector by the first element in the pair; +3. Replace the odd pairs with zero on the second element; + +### Solution + +See [slide6.cpp](./slide6.cpp). diff --git a/Lab3/slide6.cpp b/Lab3/slide6.cpp new file mode 100644 index 0000000..b544937 --- /dev/null +++ b/Lab3/slide6.cpp @@ -0,0 +1,34 @@ +#include +#include +#include +#include + +int main() { + // 1. + std::vector> v {{2, 8}, {9, 6}, {4, 7}, {22, 4}, {123, 321}, {1, 1}, {-7, 5}}; + + // 2. + std::sort(std::begin(v), std::end(v), [](const auto& e1, const auto& e2) { + return e1.first < e2.first; + }); + + // 3. + bool odd {true}; + for (auto it {std::begin(v)}; it != std::end(v); ++it) { + if (odd) { + (*it).second = 0; + } + odd = !odd; + } + + // Print the results + bool first {true}; + for (const auto& item : v) { + if (first) first = false; + else std::cout << ", "; + std::cout << "(" << item.first << ", " << item.second << ")"; + } + std::cout << std::endl; + + return 0; +} \ No newline at end of file diff --git a/README.md b/README.md index 5e7ae03..99fe4c0 100644 --- a/README.md +++ b/README.md @@ -2,3 +2,4 @@ - [Lab1](./Lab1/) - [Lab2](./Lab2/) +- [Lab3](./Lab3/)