From 1e538bdd4b90b6a3e9238e979d5dd3683d5a0b73 Mon Sep 17 00:00:00 2001 From: studiosi Date: Mon, 24 Aug 2026 18:10:37 +0300 Subject: [PATCH] Solved: 47 - MDSpan --- modules/13_cpp23/src/mdspan.cpp | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/modules/13_cpp23/src/mdspan.cpp b/modules/13_cpp23/src/mdspan.cpp index a236620..e099e17 100644 --- a/modules/13_cpp23/src/mdspan.cpp +++ b/modules/13_cpp23/src/mdspan.cpp @@ -2,23 +2,22 @@ namespace cpp23 { -auto make_row_major_matrix(int rows, int cols, int fill) -> std::vector { - (void)rows; (void)cols; (void)fill; - return {}; +auto make_row_major_matrix(const int rows, const int cols, const int fill) -> std::vector { + return std::vector(static_cast(rows * cols), fill); } -auto matrix_element( - std::mdspan> matrix, - int row, int col) -> int { - (void)matrix; (void)row; (void)col; - return 0; +auto matrix_element(const std::mdspan> matrix, const int row, const int col) -> int { + return matrix[row, col]; } -auto row_sums( - std::mdspan> matrix) - -> std::vector { - (void)matrix; - return {}; +auto row_sums(const std::mdspan> matrix) -> std::vector { + auto sums = std::vector(matrix.extent(0)); + for (auto i = 0; i < matrix.extent(0); ++i) { + for (auto j = 0; j < matrix.extent(1); ++j) { + sums[i] += matrix[i, j]; + } + } + return sums; } } // namespace cpp23