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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
KostyaKulakov
Заблокирован
24.08.2012, 12:53     Двумерный динамический массив, что и с чем есть? #1
собственно как сделать Двумерный динамический массив. и как можно проверить его работу?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2012, 12:53     Двумерный динамический массив, что и с чем есть?
Посмотрите здесь:

Двумерный динамический массив C++
C++ Динамический двумерный массив
C++ Двумерный динамический массив
C++ Динамический двумерный массив
двумерный динамический массив C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Leomana
58 / 58 / 5
Регистрация: 29.06.2012
Сообщений: 188
24.08.2012, 13:00     Двумерный динамический массив, что и с чем есть? #2
неужели так сложно воспользоваться поиском..
вот например http://ci-plus-plus.blogspot.com/2012/05/c_17.html
Andsteadur
152 / 136 / 3
Регистрация: 23.05.2009
Сообщений: 275
24.08.2012, 13:01     Двумерный динамический массив, что и с чем есть? #3
Создание двумерного массива int:
C++
1
2
3
4
5
6
7
size_t width = 10;
size_t height = 5;
int **arr = new int*[height];
for(size_t i = 0; i < height; ++i)
{
arr[i] = new int[width];
}
DaskOFF
 Аватар для DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 521
Записей в блоге: 1
24.08.2012, 13:03     Двумерный динамический массив, что и с чем есть? #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
 
int main()
{
 
int **mas = new int*[10];
for (int i=0; i !=10; i++) {
mas[i] = new int[10];
}
 
mas[5][5] = 3;
std::cout << mas[5][5];
return 0;
 
}
Buckstabue
 Аватар для Buckstabue
175 / 124 / 6
Регистрация: 12.01.2012
Сообщений: 624
24.08.2012, 13:04     Двумерный динамический массив, что и с чем есть? #5
А интересно, как наиболее грамотно создать двумерный вектор и как его лучше обходить?
DaskOFF
 Аватар для DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 521
Записей в блоге: 1
24.08.2012, 13:11     Двумерный динамический массив, что и с чем есть? #6
Цитата Сообщение от Buckstabue Посмотреть сообщение
А интересно, как наиболее грамотно создать двумерный вектор и как его лучше обходить?
vector < vector< int> > vec;

Добавлено через 4 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <vector>
 
int main()
{
    std::vector< std::vector<int> > vec;
    std::vector<int> vec2;
    for (int j =1; j != 3; j++) {
        for (int i=1; i !=11; i++)
            vec2.push_back(i);
        vec.push_back(vec2);
        vec2.clear();
    }
 
    std::cout << vec[1][2];
 
 
    return 0;
}
nameless
Эксперт C++
 Аватар для nameless
289 / 288 / 14
Регистрация: 16.06.2009
Сообщений: 486
24.08.2012, 13:34     Двумерный динамический массив, что и с чем есть? #7
Цитата Сообщение от Buckstabue Посмотреть сообщение
А интересно, как наиболее грамотно создать двумерный вектор и как его лучше обходить?
Ну или как-нибудь так
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 <algorithm>
#include <vector>
#include <random>
 
int main() {
   const int N = 3;
   std::random_device random_dev;
   std::vector <std::vector <int>> vector2d(N, std::vector <int>(N));
   for (auto & vec : vector2d) {
      std::generate(
         vec.begin(),
         vec.end(),
         std::bind(
            std::uniform_int_distribution <int>(0, 10),
            std::mt19937(random_dev())
         )
      );
   }
 
   for (const auto & vec : vector2d) {
      for (const auto & val : vec) {
         std::cout << val << "\t";
      }
      std::cout << "\n";
   }
}
http://liveworkspace.org/code/21cf33...3b0d69a6aa183c
KostyaKulakov
Заблокирован
24.08.2012, 15:11  [ТС]     Двумерный динамический массив, что и с чем есть? #8
Цитата Сообщение от Andsteadur Посмотреть сообщение
Создание двумерного массива int:
C++
1
2
3
4
5
6
7
size_t width = 10;
size_t height = 5;
int **arr = new int*[height];
for(size_t i = 0; i < height; ++i)
{
arr[i] = new int[width];
}
окей окей а как теперь обращатся к этому массиву?

Добавлено через 4 минуты
желательно с примерами :/
DaskOFF
 Аватар для DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 521
Записей в блоге: 1
24.08.2012, 15:18     Двумерный динамический массив, что и с чем есть? #9
Цитата Сообщение от KostyaKulakov Посмотреть сообщение
окей окей а как теперь обращатся к этому массиву?

Добавлено через 4 минуты
желательно с примерами :/
мой пример глянуть не судьба? у меня с проверкой и присвоением ...
KostyaKulakov
Заблокирован
24.08.2012, 15:22  [ТС]     Двумерный динамический массив, что и с чем есть? #10
не обисцуй мне твой пример не о чём не сказал. тк тамм ещё и магические константы используются:/
DaskOFF
 Аватар для DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 521
Записей в блоге: 1
24.08.2012, 15:31     Двумерный динамический массив, что и с чем есть? #11
какой вопрос, такой ответ

Добавлено через 4 минуты
Цитата Сообщение от KostyaKulakov Посмотреть сообщение
как можно проверить его работу?
Цитата Сообщение от DaskOFF Посмотреть сообщение
C++
1
2
mas[5][5] = 3;
std::cout << mas[5][5];
/////
Цитата Сообщение от KostyaKulakov Посмотреть сообщение
как теперь обращатся к этому массиву?
Цитата Сообщение от DaskOFF Посмотреть сообщение
C++
1
2
mas[5][5] = 3;
std::cout << mas[5][5];

если вам надо узнать как его перебрать - это совершенно другой вопрос и ответ на него
C++
1
2
3
for(int i =0; i !=10; i++)
    for(int j=0; j !=10; j++)
        std::cout << mas[i][j];
KostyaKulakov
Заблокирован
24.08.2012, 15:42  [ТС]     Двумерный динамический массив, что и с чем есть? #12
кхм ладно спасибо и на этом

Добавлено через 4 минуты
хорошо другой вопрос чисто не по теме.

Не по теме:

почему бы microsoft сразу не сделать динамическое выделение под двумерный массив? заместо шамаства с бубном

DaskOFF
 Аватар для DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 521
Записей в блоге: 1
24.08.2012, 15:44     Двумерный динамический массив, что и с чем есть? #13
Цитата Сообщение от KostyaKulakov Посмотреть сообщение

Не по теме:

почему бы microsoft сразу не сделать динамическое выделение под двумерный массив? заместо шамаства с бубном

Не по теме:

вектор векторов без танцев с бубном , можно перебирать и через итераторы, и с помощью индексирования, добавление элементов тоже без шаманства.
Пример есть на 1 странице

Если вы имели ввиду, чтобы был класс матрица в стандартной библиотеке, никто не запрещает вам его написать и использовать в работах, чтобы было меньше проблем(зависит от того как напишите)

KostyaKulakov
24.08.2012, 15:48  [ТС]
  #14

Не по теме:

вы не поняли. просто двумерный динамик обделили :C. значит одномерный динамический ставится. а для двумерного надо шаманить это не додумка со стороны микрософта. я бы хотел подискусировать на данную тему

ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
24.08.2012, 15:51     Двумерный динамический массив, что и с чем есть? #15
KostyaKulakov, Я задам резонный вопрос. Причем тут мелкомягкие? Они что-ли С и плюсы разработали? Давайте-ка вы будете обсуждать такие вопросы в подходящих разделах (холивары к примеру).
KostyaKulakov
Заблокирован
24.08.2012, 15:55  [ТС]     Двумерный динамический массив, что и с чем есть? #16
Холивар или обделение многомерного динамического массива кому интересно сюда.
ForEveR
24.08.2012, 15:55
  #17

Не по теме:

KostyaKulakov, Я же пошутил... Ну причем тут Майкрософт? Блин...

KostyaKulakov
24.08.2012, 15:56  [ТС]
  #18

Не по теме:

могли бы с компилятором чонить придумать, чтобы он сразу выполнял эти операции

rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
24.08.2012, 15:59     Двумерный динамический массив, что и с чем есть? #19
Цитата Сообщение от Buckstabue Посмотреть сообщение
А интересно, как наиболее грамотно создать двумерный вектор и как его лучше обходить?
Наиболее грамотно создать над всем этим делом обёртку в виде класса.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.08.2012, 17:33     Двумерный динамический массив, что и с чем есть?
Еще ссылки по теме:

C++ Динамический двумерный массив
C++ динамический двумерный массив
Двумерный динамический массив C++

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

Или воспользуйтесь поиском по форуму:
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
24.08.2012, 17:33     Двумерный динамический массив, что и с чем есть? #20
KostyaKulakov, Зачем? Есть С++/CLI, есть C#, а в нативные плюсы не нужно ничего этого, более того, если есть нужда в матрицах стоит пользоваться готовыми библиотеки boost::ublas к примеру.
Yandex
Объявления
24.08.2012, 17:33     Двумерный динамический массив, что и с чем есть?
Ответ Создать тему
Опции темы

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