Загрузка...

How to remove an element from an array?

Thread in C/C++ created by chadxxx Feb 5, 2021. 188 views

  1. chadxxx
    chadxxx Topic starter Feb 5, 2021 Веб-разработчик 1 Nov 10, 2018
    шапка
     
  2. alexwells
    alexwells Feb 5, 2021 39 Jun 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
    }
    Могу ошибаться, т.к. давно не кодил
    The post was merged to previous Feb 5, 2021
    Фишка в том, что на вход поступают массив и индекс элемента, который нужно убрать.
    Ты создаешь новый массив, но с количеством элементов на 1 меньше, чем в исходном
    Далее если ты не дошел до этого элемента при заполнении, то всё ок
    Если ты дошел до него, игнорим
    Если мы ушли дальше элемента, который нужно удалить, то заполняем по индексу на 1 больше, т.е на i++
    И возвращаем конечный результат
    The post was merged to previous Feb 5, 2021
    Потом когда нужно будет выполнить метод, просто уже херачишь Array = Remove(Array, 5)
    И получишь уже тот же массив, но без 5 элемента
    The post was merged to previous Feb 5, 2021
    Опять же не забудь про условия и ограничения, чтобы не выйти за границы массива
     
  3. Maksum1
    Maksum1 Feb 5, 2021 Услуги кодера С/С++ 21 Jan 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
Loading...