Функция удаления элемента из массива c

Функция удаления элемента из массива c

допустим, у меня есть этот массив,

Как удалить элемент по "name"? допустим число 4?

даже ArrayList не помогло удалить?

10 ответов

если вы хотите удалить все экземпляры 4 не нужно знать индекс:

LINQ: (.NET Framework 3.5)

Non-LINQ: (.NET Framework 2.0)

если вы хотите удалить только первый экземпляр:

LINQ: (.NET Framework 3.5)

Non-LINQ: (.NET Framework 2.0)

Edit: на всякий случай, если вы еще не поняли этого, как указал Малфист, вам нужно нацелить .NET Framework 3.5, чтобы примеры кода LINQ работали. Если вы нацеливаете 2.0, вам нужно ссылаться на примеры, отличные от LINQ.

Очень простенькая, но не получается.

Нужно из этого массива сделать удаление элемента массива по индексу.

3 ответа 3

Как-то уж всё совсем печально.

Динамически память не выделяете, STL не используете и режущий глаз вызов system("PAUSE"); .

Судя по всему, много элементов удалять не придётся, а потому просто смещаете все элементы, кроме удаляемого, на 1 влево и уменьшаете длину массива на 1.

Третий пункт решается просто — вам нужно передвинуть элементы в массиве: присвоить a[i]=a[i+1] в цикле.
Я думаю, вам запрещено использовать STL, так что пишите циклы.

Формат данного сайта запрещает совмещать кучу вопросов в один, так что постарайтесь разделить темы.

3) Удалить элемент с номером К.

В массивы C/C++ нельзя ничего добавлять и из них нельзя ничего удалять, массивы C/C++ статические.
Можно только создавать новые массивы, "похожие" на своих предшественников, где будет элементов больше или меньше . и каждый раз — копирование всех нужных элементов.

Добавлю:
— по п.п.4-5 — наслаждайтесь (случайные числа я генерить не стал — так нагляднее):

— а чтобы вою было меньше . исполняем:

Читайте также:  Как подключить два монитора через vga

— кстати, тот же трюк (без всяких malloc()) можете проделать и в современном C 😉

Ссылка на основную публикацию
Adblock detector