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

Динамические массивы, удаление строк/столбцов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ написать функцию умножения матрицы на скаляр http://www.cyberforum.ru/cpp-beginners/thread232637.html
Для матрицы A, с размерами N×M написать функции умножения матрицы на скаляр и вычисления суммы элементов матрицы. Вычислить и напечатать значения Sa - суммы элементов матрицы A, и B=A/Sa.
C++ функция слияния файлов вообще мне надо сделать сортирову четырех путевым слиянием но это уже хоть что то.... помогите мне разобратся в этом коде с параметрами функции хотя . бы...пожалуйста.. //_________________... http://www.cyberforum.ru/cpp-beginners/thread232632.html
Символьная информация C++
Здравствуйте. Помогите, пожалуйста с заданием. 1. Дана строка символов. Распечатать слова, отличные от последнего, оставив в каждом слове только первые вхождения каждой буквы. например: "Ptici...
прошу помочь с программой на с++ C++
Для матрицы A, с размерами N×M написать функции умножения матрицы на скаляр и вычисления суммы элементов матрицы. Вычислить и напечатать значения Sa - суммы элементов матрицы A, и B=A/Sa.
C++ Пример из книги Лафоре http://www.cyberforum.ru/cpp-beginners/thread232617.html
В третьей главе книги Лафоре по с++ есть пример использующий функцию getche(): #include <iostream> #include <conio.h> using namespace std; int main() { int chcount = 0, wdcount = 1; ...
C++ Инкримент в двухмерном массиве Помогите пжл написать: оператор ++ ,который будет добовлять каждому элементу двухмерного массива единицу. подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
23.01.2011, 00:25
apachan, Я сейчас предложу Вам вариант, вернее его опишу. Мне он кажется в этой ситуации очень подходящим:
Вот создали динамически массив mas[][] :
0 0 0 0 0
1 2 3
0 3 4 5
2 3
Что он из себя представляет:
mas[0] - указатель на одномерный динамический массив размером для хранения 5 элементов типа int
mas[1] - указатель на одномерный динамический массив размером для хранения 3 элементов типа int
и т.д.
А что мешает для удаления строки, которая содержит только 0, не переписывать построчно все элементы в строках ниже, а просто немного поработать с этими указателями. Например для приведенного Вами примера может выглядеть так:
- освобождаем память на которую указывает указатель mas[0]
- указателю mas[0] присваиваем адрес mas[1] (если кодом то так: mas[0]=mas[1]; )
- mas[1]=mas[2];
и т.д.
не забываем про значения m[] - они тоже меняются.
По-моему быстрее и эффективнее.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru