Форум программистов, компьютерный форум CyberForum.ru

Удаление строки в двумерном массиве - C++

Восстановить пароль Регистрация
 
datafile4
 Аватар для datafile4
35 / 35 / 2
Регистрация: 26.02.2013
Сообщений: 176
06.08.2014, 20:46     Удаление строки в двумерном массиве #1
Как удалить строку в двумерном массиве ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
06.08.2014, 20:55     Удаление строки в двумерном массиве #2
Сместить другие строки на одну. Соседняя занимает место "удаленной".
zss
Модератор
Эксперт С++
 Аватар для zss
5943 / 5548 / 1783
Регистрация: 18.12.2011
Сообщений: 14,171
Завершенные тесты: 1
06.08.2014, 21:16     Удаление строки в двумерном массиве #3
Если двумерный массив динамический, то можно просто переставить указатели.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int** a;
a=new int*[5]; // указатели на 5 строк
for(int i=0;i<5;i++)
{
    a[i]=new int[10]; // 10 столбцов
    for(j=0;j<10;j++)
              a[i][j]=i+j;
}
delete[] a[1];// 1 строка удаляется
for(int i=1;i<4;i++)
              a[i]=a[i+1];// сдвигаем указатели
for(int i=0;i<4;i++)
{
    for(j=0;j<10;j++)
              cout<<a[i][j]<<" ";
   cout<<endl;
}
for(int i=0;i<4;i++)
  delete[] a[i];
delete[] a;
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5548 / 2562 / 233
Регистрация: 01.11.2011
Сообщений: 6,332
Завершенные тесты: 1
07.08.2014, 10:50     Удаление строки в двумерном массиве #4
Цитата Сообщение от Vourhey Посмотреть сообщение
Сместить другие строки на одну.
И последнюю удалить. И размерность декрементировать.
datafile4
 Аватар для datafile4
35 / 35 / 2
Регистрация: 26.02.2013
Сообщений: 176
08.08.2014, 13:29  [ТС]     Удаление строки в двумерном массиве #5
И последнюю удалить. И размерность декрементировать.
Можете пояснить на примере ?
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5548 / 2562 / 233
Регистрация: 01.11.2011
Сообщений: 6,332
Завершенные тесты: 1
08.08.2014, 14:00     Удаление строки в двумерном массиве #6
Цитата Сообщение от datafile4 Посмотреть сообщение
Можете пояснить на примере ?
Вот представим себе, что пальцы человеческой руки это массив из пяти элементов. Теперь мы хотим удалить элемент из середины массива. Отрубаем средний палец. Но у нас образовалась дырка между указательным и безымянным. И мы, считая, с помощью загибания пальцев, до пяти, будем все время ошибаться, загибая фантомный средний палец. Чтобы такого не происходило, мы должны как-то закрыть эту дырку, чтобы пальцы снова шли подряд. По этому мы отрубаем безымянный палец и пришиваем его на место среднего. Мизинец же мы, отрубив, переставляем на место безымянного. В итоге, хоть у нас и снизился максимальный предел, но мы уже не собьемся со счета.
Стандартный подход C++ диктует нам, что о последнем недостающем пальце нужно забыть. Дескать, все равно он не используется. Но часто бывает, что память в мозгу уже выделена под воспоминания о мизинце, и при счете с загибанием пальцев мы можем попытаться загнуть фантомный палец. Это может привести к непредсказуемым последствиям. Если мы хотим точно избежать подобных явлений, то мы идем к фантомасу, который гипнотизирует нас и удаляет из нашей памяти воспоминания о мизинце. И смещает воспоминания о нем на безымянный палец. Таким образом получается, что мы как бы и всегда имели четыре пальца, а не пять, и это для нас совершенно естественно. Следовательно мы больше не попадем в эту ловушку, и будем прекрасно считать до четырех.
Yandex
Объявления
08.08.2014, 14:00     Удаление строки в двумерном массиве
Ответ Создать тему
Опции темы

Текущее время: 13:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru