Загрузка...

Как убрать елемент из массива?

Тема в разделе C/C++ создана пользователем chadxxx 5 фев 2021. 186 просмотров

  1. chadxxx
    chadxxx Автор темы 5 фев 2021 Веб-разработчик 1 10 ноя 2018
    шапка
     
  2. alexwells
    alexwells 5 фев 2021 39 14 июн 2019
    Если массив не имеет там 1000+ элементов, то просто создай новый и приравняй старые элементы, но без того, который хочешь убрать
    тип у тебя есть массив A = {1, 2, 3, 4}
    тебе нужно убрать третий элемент
    можно описать как функцию, ща точно не вспомню с++

    static int Remove(int[] A, int k)
    {
    int[] B = new int[A.length-1]
    for( int i = 0; i < B.length; i++)
    {
    if (i < k) B = A;
    if (i > k) B = A[i++];
    }
    return B
    }
    Могу ошибаться, т.к. давно не кодил
    --- Сообщение объединено с предыдущим 5 фев 2021
    Фишка в том, что на вход поступают массив и индекс элемента, который нужно убрать.
    Ты создаешь новый массив, но с количеством элементов на 1 меньше, чем в исходном
    Далее если ты не дошел до этого элемента при заполнении, то всё ок
    Если ты дошел до него, игнорим
    Если мы ушли дальше элемента, который нужно удалить, то заполняем по индексу на 1 больше, т.е на i++
    И возвращаем конечный результат
    --- Сообщение объединено с предыдущим 5 фев 2021
    Потом когда нужно будет выполнить метод, просто уже херачишь Array = Remove(Array, 5)
    И получишь уже тот же массив, но без 5 элемента
    --- Сообщение объединено с предыдущим 5 фев 2021
    Опять же не забудь про условия и ограничения, чтобы не выйти за границы массива
     
  3. Maksum1
    Maksum1 5 фев 2021 Услуги кодера С/С++ 21 17 янв 2018
    chadxxx, как варик без STL
    Если что спрашивай)


    #include <iostream>

    int main() {
    int size = 5;
    int arr[5] = {23, 3,51, 87,90};
    int removeElemIndex = 0;

    std::cin >> removeElemIndex;

    for (int i = removeElemIndex; i < size; ++i) {
    arr = arr[i + 1];
    }
    --size;

    for (int i = 0; i < size; ++i) {
    std::cout << arr << " ";
    }
    std::cout << std::endl;
    return 0;
    }
     
Загрузка...
Top