Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Динамический массив...

2.5K
16 июля 2003 года
Kostyan_nsk
5 / / 31.01.2003
Как можно задать размер массива динамически и потом его увеличивать?

unsigned char **a;
a=new unsigned char*[m];
for (i=0; i<m; i++)
a=new unsigned char[n];

Нужно что-нить типа этого при условии, что m,n изменяются...
2.1K
16 июля 2003 года
maximaximax
83 / / 05.06.2003
Не надо изобретать велосипеда, используй STL vector

#include <vector>

using namespace std;

....


vector<unsigned char> a;
a.resize(m);
a[m-1] = 'm';
a.resize(n);
a[n-1] = 'n';

или даже просто

a.push_back('m');
a.push_back('n');
2.5K
16 июля 2003 года
Kostyan_nsk
5 / / 31.01.2003
Цитата:
Originally posted by maximaximax
Не надо изобретать велосипеда, используй STL vector

#include <vector>

using namespace std;

....


vector<unsigned char> a;
a.resize(m);
a[m-1] = 'm';
a.resize(n);
a[n-1] = 'n';

или даже просто

a.push_back('m');
a.push_back('n');


Это пример работы с одномерным массивом, а двумерный как этим вектором задать?

2.1K
16 июля 2003 года
maximaximax
83 / / 05.06.2003
Цитата:
Originally posted by Kostyan_nsk

Это пример работы с одномерным массивом, а двумерный как этим вектором задать?



ну если тебе нужна разное число столбцов в строках, то можно и vector<vector<char>>. Если же известна длина строки то достаточно vector<char[20]> например или если ты знаешь число строк, то vector<char>[20]

Или ты про что-то иное спрашивал?

4.9K
18 июля 2003 года
ZDimitor
4 / / 16.07.2003
Зачем подобные изыски с STL и ей подобными библиотеками,просто берешь и динамически именяешь размеры массива, например так:

int m=10, n=20;

// создаем массив 10x20
char **ch=new char*[m];

for (int i=0; i<m; i++)
ch=new char[n];

//добавляем к массиву 11-й элемент из 21-го символа
m++;
n++;

char **chTemp=new char*[m];

for (int i=0; i<m-1; i++)
chTemp=ch;

chTemp[m-1]=new char[n];

delete []ch;

ch=chTemp;
2.1K
18 июля 2003 года
maximaximax
83 / / 05.06.2003
Цитата:
Originally posted by ZDimitor
Зачем подобные изыски с STL и ей подобными библиотеками,просто берешь и динамически именяешь размеры массива, например так:
<skipped>



Это как раз то что ты написал - изыски, чтоб не сказать извращения. STL - стандартная библиотека шаблонов, включена во все C++ на всех платформах, внутри неё написано то же самое что и ты написал, но культурно и уже давно отлажено

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог