avr39ripe

cpp2dLinearArrayTask

Jun 1st, 2021 (edited)
971
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.46 KB | None | 0 0
  1. Двумерные динамические массивы.
  2.  
  3. Задание 42. Реализовать шаблоны функций для линейно выделенного двумерного массива для:
  4. - создания массива
  5. - удаления массива
  6. - вывода массива на экран
  7. - заполнения массива случайными числами
  8. - добавления строки по указанному индексу, а так же возможность инициализировать добавленные элементы одномерным массивом
  9. - добавления столбца по указанному индексу, а так же возможность инициализировать добавленные элементы одномерным массивом
  10. - удаление строки по указанному индексу
  11. - удаление столбца по указанному индексу
  12.  
  13. Добавление/удаление приводит к перевыделению памяти! Не забывайте правильно копировать исходное содержимое массива.
  14. Помните, двумерный массив выделен линейно, одним большим куском, новый массив с добавлениями/удалениями так же должен быть линейно выделен!
  15. Всесторонне протестируйте результат.
  16. Не забывайте корректно "разбирать" массив по окончании работы, то есть освобождать из под него память.
  17.  
  18. Рекомендованные сигнатуры функций:
  19.  
  20. template <typename T>
  21. void addRowArr2DLinear(T**& container, int& ySize, int xSize, int rowPos, T* newRow = nullptr)
  22.  
  23. template <typename T>
  24. void addColumnArr2DLinear(T** container, int ySize, int& xSize, int columnPos, T* newCol = nullptr)
  25.  
  26. template <typename T>
  27. void deleteRowArr2DLinear(T**& container, int& ySize, int xSize, int rowPos)
  28.  
  29. template <typename T>
  30. void deleteColumnArr2DLinear(T** container, int ySize, int& xSize, int columnPos)
  31.  
  32.  
  33.  
  34.  
  35. Двумерные динамические массивы.
  36.  
  37. Задание 43. Реализовать шаблоны функций для выделенного ОТДЕЛЬНЫМИ ЧАСТЯМИ двумерного массива для:
  38. - создания массива
  39. - удаления массива
  40. - вывода массива на экран
  41. - заполнения массива случайными числами
  42. - добавления строки по указанному индексу, а так же возможность инициализировать добавленные элементы одномерным массивом
  43. - добавления столбца по указанному индексу, а так же возможность инициализировать добавленные элементы одномерным массивом
  44. - удаление строки по указанному индексу
  45. - удаление столбца по указанному индексу
  46.  
  47. Добавление/удаление приводит к перевыделению памяти! Не забывайте правильно копировать исходное содержимое массива.
  48. Помните, двумерный массив выделен ЧАСТЯМИ, новый массив с добавлениями/удалениями так же должен быть  выделен ЧАСТЯМИ!
  49.  
  50. Всесторонне протестируйте результат.
  51. Не забывайте корректно "разбирать" массив по окончании работы, то есть освобождать из под него память.
  52.  
  53. Рекомендованные сигнатуры функций:
  54.  
  55. template <typename T>
  56. void addRowArr2D(T**& container, int& ySize, int xSize, int rowPos, T* newRow = nullptr)
  57.  
  58. template <typename T>
  59. void addColumnArr2D(T** container, int ySize, int& xSize, int columnPos, T* newCol = nullptr)
  60.  
  61. template <typename T>
  62. void deleteRowArr2D(T**& container, int& ySize, int xSize, int rowPos)
  63.  
  64. template <typename T>
  65. void deleteColumnArr2D(T** container, int ySize, int& xSize, int columnPos)
  66.  
  67.  
Add Comment
Please, Sign In to add comment