Advertisement
Ilya_konstantinov

10C2

Dec 7th, 2023 (edited)
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.81 KB | Source Code | 0 0
  1. struct MyVector{
  2.     unsigned size, capacity; // Размер массива и выделенный размер памяти
  3.     int *arr; // Указатель на первыый элемент массива в памяти  
  4. };
  5.  
  6. unsigned pref_size(unsigned n) { // Функция преобразования размера под ближайшую степень двойки
  7.     /* paste your code here */
  8. }
  9.  
  10. void read(MyVector &vec, unsigned n){
  11.     vec.size = // Изменить размер
  12.     vec.capacity = // Изменить размер зарезервированной памяти
  13.     vec.arr = // Выделить память
  14.     for (int i = 0; i < /*переменная*/; ++i) // Считать массив;
  15. }
  16.  
  17. void print(MyVector &vec) {
  18.     for (int i = 0; i < /*переменная*/; ++i) // Вывести массив
  19. }
  20.  
  21. void push_back(MyVector &vec, int x) {
  22.     if (vec.capacity > vec.size){ // Что делать, если место еще есть
  23.         /* paste your code here */
  24.     }
  25.     vec.capacity = // Изменить размер памяти
  26.     int *tmp_arr = // Выделить память под новый массив
  27.     // Скопировать старый массив в новый
  28.     // Вставить нужный элемент в конец и очистить ненужную мамять
  29.     vec.arr = tmp_arr;
  30. }
  31.  
  32. int pop_back(MyVector &vec) { // Удалить последний элемент массива
  33.   // Удалить элемент
  34.   if (vec.capacity >= vec.size * 2) { // Что делать если нужно изменить capasity
  35.     // Изменяем размер
  36.     // Перекопируем
  37.   }
  38. }
  39. void del(MyVector& vec) { // Очищение памяти
  40.     /* paste your code here */
  41. }
  42.  
  43. void insert(MyVector &vec, int x, int k) {
  44.     if (vec.capacity <= vec.size) { // Что делать если размер выделенной памяти меньше, чем нужно
  45.         vec.capacity = // Изменить размер памяти
  46.         int *tmp_arr = // Выделить память под новый массив
  47.         // Вставить элемент
  48.         // Скопировать старый массив в новый
  49.         // И очистить память
  50.     } else {
  51.         // Вставить элемент
  52.         // Изменить размер
  53.     }
  54.     return;
  55. }
  56.  
  57. void erase(MyVector &vec, int k) { // Удалить элемент по индексу k
  58.   // Удалить элемент
  59.   if (vec.capacity >= vec.size * 2) { // Что делать если нужно изменить capasity
  60.     // Изменяем размер
  61.     // Перекопируем
  62.   }
  63. }
  64.  
  65. void print_size(MyVector &vec) {
  66.     /* paste your code here */
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement