From 879aa70f5eea08762256fc69e91a66b19cec5585 Mon Sep 17 00:00:00 2001 From: "George K. Thiruvathukal" Date: Sat, 2 Dec 2023 23:06:55 -0600 Subject: [PATCH] add std::vector top 10 MVA --- modern-cpp/CMakeLists.txt | 2 ++ modern-cpp/vector-top10-mva.cpp | 60 +++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 modern-cpp/vector-top10-mva.cpp diff --git a/modern-cpp/CMakeLists.txt b/modern-cpp/CMakeLists.txt index 7000489..d687e21 100644 --- a/modern-cpp/CMakeLists.txt +++ b/modern-cpp/CMakeLists.txt @@ -24,6 +24,8 @@ set(MY_APP_NAMES lambda-with-return-type std-pair std-tuple + spdlog-mva + vector-top10-mva ) foreach(APP_NAME IN LISTS MY_APP_NAMES) diff --git a/modern-cpp/vector-top10-mva.cpp b/modern-cpp/vector-top10-mva.cpp new file mode 100644 index 0000000..f09ef11 --- /dev/null +++ b/modern-cpp/vector-top10-mva.cpp @@ -0,0 +1,60 @@ +#include +#include +#include +#include + +int main() { + std::random_device rd; + std::mt19937 gen(rd()); + std::uniform_real_distribution dist(0.0, 1.0); + + std::vector v; + + // push_back() + for (int i = 0; i < 10; i++) { + v.push_back(dist(gen)); + } + + // size() + fmt::print("size: {}\n", v.size()); + + // resize() + v.resize(5, 0.0); + fmt::print("size after resize: {}\n", v.size()); + + // reserve() + v.reserve(20); + fmt::print("capacity after reserve: {}\n", v.capacity()); + + // clear() + v.clear(); + fmt::print("size after clear: {}\n", v.size()); + + // empty() + fmt::print("vector is {}\n", v.empty() ? "empty" : "not empty"); + + // pop_back() + for (int i = 0; i < 10; i++) { + v.push_back(dist(gen)); + } + v.pop_back(); + + // at() + fmt::print("first element: {}\n", v.at(0)); + fmt::print("last element: {}\n", v.at(v.size()-1)); + + // operator[] + v[0] = dist(gen); + v[1] = dist(gen); + v[2] = dist(gen); + fmt::print("first element: {}\n", v[0]); + fmt::print("last element: {}\n", v[v.size()-1]); + + // iterators + for (auto it = v.begin(); it != v.end(); it++) { + fmt::print("{} ", *it); + } + fmt::print("\n"); + + return 0; +}