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

Можно ли разширять матрицу без удаления предыдущей - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Разработать три класса, которые следует связать между собой, используя наследование http://www.cyberforum.ru/cpp-beginners/thread1246502.html
Разработать три класса, которые следует связать между собой, используя наследование: класс Product, который имеет три элемент-данных - имя, цена и вес товара (базовый класс для всех классов); класс Buy, содержащий данные о количестве покупаемого товара в штуках, о цене за весь купленный товар и о весе товара (производный класс для класса Product и базовый класс для класса Check); класс...
C++ Запуск деструктора не осуществляется в приведенном коде Добрый день. Написал программу, а в ней не хочет автоматически запускаться, хотя я вроде бы всё правильно делаю. Прошу подсказать, в чём может быть проблема. #include "stdafx.h" #include <conio.h> #include <iostream> using namespace std; class Work { private: http://www.cyberforum.ru/cpp-beginners/thread1246489.html
C++ Где в памяти хранится тип указателя?
Привет! Вы не подскажите, где в памяти храниться тип указателя? Ну допустим, у нас x86 и указатель занимает 4 байта, но эти 4-е байта - это ж просто адрес, а где хранится сам тип? Ведь есть же тип указателя, ну не всё же void*, есть же int*, bool*, double*, MyClass* и т.д. Я даже знаю, что есть информация о размере блока, на который указывает указатель как бы, он с каким - то смещением рядом...
C++ Есть ли разница между Visual C++, Borland C++ и C++ Builder?
Какая разница между этими диалектами, или незнаю как это точно называется. И какой лучше?
C++ Как передать указатель функции, чтобы значение переменной изменилось? http://www.cyberforum.ru/cpp-beginners/thread1246422.html
Имеются переменная и указатель на нее. int x, *y = &x; Как передать указатель ф-ии, чтобы значение переменной изменилось?
C++ Вычислить выражение Доброго времени суток всем.Подскажите,как реализовать вычисление данного выражения на С++.С помощью простейших операторов и цикла For. Составить программу вычисления выражения (((5^2-4^2)^2-3^2)^2-2^2)^2-1^2)^2 подробнее

Показать сообщение отдельно
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,537

Можно ли разширять матрицу без удаления предыдущей - C++

24.08.2014, 13:09. Просмотров 255. Ответов 7
Метки (Все метки)

Интересует вопрос, можно ли разширять матрицу без удаления предыдущей.

Покажу сразу пример:
Допустим есть некая структура, и так я её первоначально заполняю:
C++
1
2
3
4
var **v;
v = new var*[CMY];//динамическая матрица
    for (int i = 0; i < CMY; i++)
        v[i] = new var[CMX];
И так CMY - это кол-во строк, а CMX - кол-во столбцов.
Исходя из логики использования delete[], матрица должна быть непрерывна в памяти чтоб её можно было корректно удалить.
Я понимаю что в случае с обычным массивом при выделении памяти: "v[i] = new var[CMX];" память выделяется в соответствии с размером самой структуры VAR(либо конкретным типом), однако мне не понятно сколько выделяется памяти и в соответствии с чем в случае выделения для матрицы: "var **v = new var*[CMY];" ведь тут я так понимаю будет лишь указатель.
Вообще исходя из этого вопроса вытекает следующий, можно ли позже нарастить матрицу(хотя указатель возможно чего то и весит, так что не факт что будет свободное место после первоначальной матрицы), или же можно вообще не париться, и выделять память под матрицу с запасом (имею ввиду, что если "вес" указателя не очень то и большой, то можно и сразу под 100 экземпляров выделить указателей, а в соответствии с надобностью уже заполнять их). Вопрос то возник исходя из того, что наращивание матрицы обычным способом через определение нового экземпляра var **vn (на 1 элемент больше чем **v) и копирование из **v в **vn (с внутренними массивами) слишком затратно получается, и если размеры матрицы превысят ~100, то будет уже долго делать копирование всей информации.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru