As a first baby step, move from c-array to std::array and then to std::vector:
with std:;array:
and then with std::vector:Code:#include <iostream> #include <algorithm> #include <array> constexpr size_t ELEMENTS { 8 }; using Arr = std::array<int, ELEMENTS>; void show(const Arr& arr) { for (const auto& c : arr) std::cout << c; std::cout << '\n'; } void bool_element_option_03(const Arr& arr_value, Arr& arr_copy_value) { //std::copy(std::begin(arr_value), std::end(arr_value), std::begin(arr_copy_value)); arr_copy_value = arr_value; std::sort(std::rbegin(arr_copy_value), std::rend(arr_copy_value)); std::cout << "\nReverse sorted:\n"; show(arr_copy_value); } int main() { const Arr arr_value { 1, 2, 9, 4, 5, 6, 7, 8 }; Arr arr_copy_value; std::cout << "\nOriginal order:\n"; show(arr_value); bool_element_option_03(arr_value, arr_copy_value); }
Note that with std::array and std::vector, you can do a direct assignment without using std:copy().Code:#include <iostream> #include <algorithm> #include <vector> #include <iterator> using Arr = std::vector<int>; void show(const Arr& arr) { for (const auto& c : arr) std::cout << c; std::cout << '\n'; } void bool_element_option_03(const Arr& arr_value, Arr& arr_copy_value) { //std::copy(std::begin(arr_value), std::end(arr_value), std::back_insert_iterator<Arr>(arr_copy_value)); arr_copy_value = arr_value; std::sort(std::rbegin(arr_copy_value), std::rend(arr_copy_value)); std::cout << "\nReverse sorted:\n"; show(arr_copy_value); } int main() { const Arr arr_value { 1, 2, 9, 4, 5, 6, 7, 8 }; Arr arr_copy_value; std::cout << "\nOriginal order:\n"; show(arr_value); bool_element_option_03(arr_value, arr_copy_value); }




Reply With Quote
