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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
beta-particle
4 / 4 / 0
Регистрация: 07.01.2013
Сообщений: 103
#1

Как реализовать двумерный динамический массив? - C++

18.06.2013, 01:02. Просмотров 1670. Ответов 30
Метки нет (Все метки)

Доброго дня суток, форумчане! Подскажите пожалуйста, как реализовать двумерный динамический массив?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2013, 01:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как реализовать двумерный динамический массив? (C++):

Реализовать двумерный динамический треугольный массив. Количество строк и сами элементы вводит пользователь. Количество элементов в строке рассчитывае - C++
Реализовать двумерный динамический треугольный массив. Количество строк и сами элементы вводит пользователь. Количество элементов в строке...

Как создать динамический двумерный массив - C++
Динамический одномерный массив p можно сождать примерно так: int N, *p; cin >> N; p= new int А как создать динамический...

Как объявлять двумерный динамический массив - C++
Доброго времени суток. При выделении памяти для динамического двумерного массива с разным количеством строк и столбцов, под что сначала...

Как заполнить двумерный динамический массив? - C++
Кто может объяснить , как создать динамический двумерный массив и записать в него элементы из файла, при этом подсчитав количество строк и...

Как создать динамический двумерный массив - C++
Можно ли создать на С++ динамический двухмерный масив? Как? int z , x ; cin >> z ; cin >> x ; int *arr = new int(z); int *arr1...

Как создать двумерный динамический массив - C++
Помогите, пожалуйста, в таком вопросе: нужно создать динамический двумерный массив. Да он еще должен быть такой, чтоб длина строк была...

30
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
18.06.2013, 01:35 #16
Не понимаю, чем swap_ranges не такой же?
0
ValeryS
Модератор
6651 / 5060 / 470
Регистрация: 14.02.2011
Сообщений: 16,918
18.06.2013, 01:35 #17
Цитата Сообщение от Dani Посмотреть сообщение
Но это же тоже как-бы вручную.
но ведь не циклом же?
хотя ты это про паскаль
я на фортране давно не писал сейчас навскидку не помню но там куча методов именно для массивов

Цитата Сообщение от Dani Посмотреть сообщение
В плюсах можно swap_ranges
не знаком
можно поподробнее
0
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
18.06.2013, 01:36 #18
ValeryS, http://www.cplusplus.com/reference/a...m/swap_ranges/
1
ValeryS
Модератор
6651 / 5060 / 470
Регистрация: 14.02.2011
Сообщений: 16,918
18.06.2013, 01:45 #19
так на вскидку
Ввод и вывод массива
Fortran
1
2
READ(*,*) A,B 
WRITE(*,*) A,B
В Фортране можно, используя конструктор массива, задать одномерный
массив. Конструктор массива имеет вид:
(/ список-значений /)
функция SIZE возвращает размер массива
только не надо про sizeof
это только для статических
ну и там много чего еще
1
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
18.06.2013, 01:47 #20
Если уж ничего никому не хочется реализовывать, то можно взять vector, array.
0
ValeryS
Модератор
6651 / 5060 / 470
Регистрация: 14.02.2011
Сообщений: 16,918
18.06.2013, 01:47 #21
Dani,
так это std:шка
ну так там много чего добавлено
например динамический массив под названием вектор
0
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
18.06.2013, 01:48 #22
В фортране просто подключать по ходу ничего не нужно.
0
ValeryS
Модератор
6651 / 5060 / 470
Регистрация: 14.02.2011
Сообщений: 16,918
18.06.2013, 01:52 #23
Цитата Сообщение от Dani Посмотреть сообщение
В фортране просто подключать по ходу ничего не нужно.
ну да
и вектор с арраей это уже действительно массивы со своими методами
я та речь вел что нельзя через new выделить двумерный массив
или квази или массив массивов
0
beta-particle
4 / 4 / 0
Регистрация: 07.01.2013
Сообщений: 103
18.06.2013, 01:53  [ТС] #24
У меня вышло дописать программу. Как вам?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<iostream>
#include <iomanip>
 
using namespace std;
 
int main(){
    int rows,columns;
    srand(time(0));
 
    cout<< "Enter the number of rows:" << endl;
    cin >> rows;
    cout<< "Enter the number of columns:" << endl;
    cin >> columns;
    int **Mas = new int *[rows];
    for (int i = 0;i < rows;i++)
        Mas[i] = new int [columns];
    for (int i = 0;i < rows;i++)
        for (int j = 0;j < columns;j++ )
            Mas[i][j] = rand() % 10 + 1;// заполняем рандомно
    for (int i = 0; i < rows; i++)
    {
        for (int j = 0; j < columns; j++)
            cout << setw(2) << Mas[i][j] << " "; //вывод массива
     cout << endl;
    }
    return 0;
}
0
ValeryS
Модератор
6651 / 5060 / 470
Регистрация: 14.02.2011
Сообщений: 16,918
18.06.2013, 02:05 #25
beta-particle,
я тут немного не прав
Цитата Сообщение от beta-particle Посмотреть сообщение
int **Mas = new int *[rows];
* * for (int i = 0;i < rows;i++)
* * * * Mas[i] = new int [columns];
это не динамический массив
это динамически выделенный массив
разница в том что если ты поймешь что не хватает колонок то уже ничего не исправишь
придется заново выделять память копировать и удалять первый

если тебе нужен действительно динамический массив (изменение размеров на лету)
то это vector
http://ru.wikipedia.org/wiki/Vector_(C%2B%2B)
http://ru.cppreference.com/w/cpp/container/vector
0
gray_fox
What a waste!
1521 / 1226 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
18.06.2013, 02:18 #26
Цитата Сообщение от beta-particle Посмотреть сообщение
У меня вышло дописать программу. Как вам?
Если сами выделяете динамическую память, надо её самому и освобждать (new -> delete, new[] -> delete[]). А так вообще, как уже писали, лучше использовать умные указатели\контейнеры STL, которые сами позаботятся об управлении памятью.
0
beta-particle
4 / 4 / 0
Регистрация: 07.01.2013
Сообщений: 103
18.06.2013, 11:08  [ТС] #27
gray_fox, Про контейнеры я знаю, просто хотелось самому реализовать динамический двумерный массив. Но все равно спасибо.))

ValeryS, Спасибо, я работал с vector)))
0
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
18.06.2013, 14:14 #28
Цитата Сообщение от beta-particle Посмотреть сообщение
просто хотелось самому реализовать динамический двумерный массив
есть книга Страуструпа - Принципы и практика использования С++. Там глав 5 он показывает как самому собрать vector (как создать похожий на тот, который в vector.h). Там и получается динамический и со всеми делами.
0
beta-particle
4 / 4 / 0
Регистрация: 07.01.2013
Сообщений: 103
18.06.2013, 16:52  [ТС] #29
Dani, кстати, да, его я читаю, только, похоже, до этого места я не дошел.
0
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
18.06.2013, 17:01 #30
Это где-то глава 17
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2013, 17:01
Привет! Вот еще темы с ответами:

Как объявить двумерный динамический массив - C++
int *matrix = new int ; че ругается ? а как сделать если без констант надо ?

Как заполнить двумерный динамический массив? - C++
вот я создал двумерный динамический массив (правильно надеюсь): int row=2; for (int i=0; i&lt;dl; i++){if ('!'==str){row+=1;}}; int...

Как сделать двумерный динамический массив на 4 столбца ? - C++
Что нужно изменить в этом коде чтобы у Mass1 стало 4 столбца? я побывал менять Mass2 = new int64_t; 2 на 4 но программа перестает работать ...

Как передать в функцию двумерный динамический массив? - C++
#include &lt;iostream&gt; #include&lt;time.h&gt; #include&lt;cstdlib&gt; using namespace std; void zap(int array, int n) { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Yandex
Объявления
18.06.2013, 17:01
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru