On-line: гостей 0. Всего: 0 [подробнее..]
Программисты всех стран, объединяйтесь!

АвторСообщение



ссылка на сообщение  Отправлено: 13.09.19 14:20. Заголовок: ­Способы создание массивов


 
#include <iostream>
#include <iomanip>

const size_t N1 = 2, N2 = 3, N3 = 4;

void f( int ( &a )[N1][N2][N3] )
{
int value = 0;
for ( auto &a2 : a )
{
for ( auto &a3 : a2 )
{
for ( auto &item : a3 ) item = value++;
}
}
}

int main()
{
int a[N1][N2][N3];

f( a );

int width = 1;
std::cout << std::setw( width ) << "{\n";
width += 4;

for ( const auto &a2 : a )
{
std::cout << std::setw( width ) << "{\n";
width += 3;

for ( const auto &a3 : a2 )
{
std::cout << std::setw( width ) << "{ ";

for ( const auto &item : a3 )
{
std::cout << std::setw( 2 ) << item << ' ';
}

std::cout << "}\n";
}

width -= 3;
std::cout << std::setw( width ) << "}\n";
}

width -= 4;
std::cout << std::setw( width ) << "}\n";
}


Вывод программы на косноль

 
{
{
{ 0 1 2 3 }
{ 4 5 6 7 }
{ 8 9 10 11 }
}
{
{ 12 13 14 15 }
{ 16 17 18 19 }
{ 20 21 22 23 }
}
}


 
#include <iostream>
#include <iomanip>

const size_t N2 = 3, N3 = 4;

void f( int a[][N2][N3], size_t n1 )
{
int value = 0;

for ( size_t i = 0; i < n1; i++ )
{
for ( auto &a3 : a )
{
for ( auto &item : a3 ) item = value++;
}
}
}

int main()
{
size_t n1 = 2;

int ( * a )[N2][N3] = new int[n1][N2][N3];

f( a, n1 );

int width = 1;
std::cout << std::setw( width ) << "{\n";
width += 4;

for ( size_t i = 0; i < n1; i++ )
{
std::cout << std::setw( width ) << "{\n";
width += 3;

for ( const auto &a3 : a )
{
std::cout << std::setw( width ) << "{ ";

for ( const auto &item : a3 )
{
std::cout << std::setw( 2 ) << item << ' ';
}

std::cout << "}\n";
}

width -= 3;
std::cout << std::setw( width ) << "}\n";
}

width -= 4;
std::cout << std::setw( width ) << "}\n";
}


Вывод программы на консоль
 
{
{
{ 0 1 2 3 }
{ 4 5 6 7 }
{ 8 9 10 11 }
}
{
{ 12 13 14 15 }
{ 16 17 18 19 }
{ 20 21 22 23 }
}
}


 
#include <iostream>
#include <iomanip>

const size_t N2 = 3;

void f( int * a[][N2], size_t n1, size_t n3 )
{
int value = 0;

for ( size_t i = 0; i < n1; i++ )
{
for ( auto &a2 : a )
{
for ( size_t j = 0; j < n3; j++ ) a2[j] = value++;
}
}
}

int main()
{
size_t n1 = 2;
size_t n3 = 4;

int * ( *a )[N2] = new int *[n1][N2];

for ( size_t i = 0; i < n1; i++ )
{
for ( auto &a2 : a ) a2 = new int[n3];
}

f( a, n1, n3 );

int width = 1;
std::cout << std::setw( width ) << "{\n";
width += 4;

for ( size_t i = 0; i < n1; i++ )
{
std::cout << std::setw( width ) << "{\n";
width += 3;

for ( const auto &a2 : a )
{
std::cout << std::setw( width ) << "{ ";

for ( size_t j = 0; j < n3; j++ )
{
std::cout << std::setw( 2 ) << a2[j] << ' ';
}

std::cout << "}\n";
}

width -= 3;
std::cout << std::setw( width ) << "}\n";
}

width -= 4;
std::cout << std::setw( width ) << "}\n";

for ( size_t i = 0; i < n1; i++ )
{
for ( const auto &a2 : a ) delete [] a2;
}

delete [] a;
}

Вывод программы на консоль
 
{
{
{ 0 1 2 3 }
{ 4 5 6 7 }
{ 8 9 10 11 }
}
{
{ 12 13 14 15 }
{ 16 17 18 19 }
{ 20 21 22 23 }
}
}


 
#include <iostream>
#include <iomanip>

const size_t N3 = 4;

void f( int ( * a[] )[N3], size_t n1, size_t n2 )
{
int value = 0;

for ( size_t i = 0; i < n1; i++ )
{
for ( size_t j = 0; j < n2; j++ )
{
for ( auto &item : a[j] ) item = value++;
}
}
}

int main()
{
size_t n1 = 2;
size_t n2 = 3;

int ( **a )[N3] = new ( int ( *[n1] )[N3] );

for ( size_t i = 0; i < n1; i++ )
{
a = new int[n2][N3];
}

f( a, n1, n2 );

int width = 1;
std::cout << std::setw( width ) << "{\n";
width += 4;

for ( size_t i = 0; i < n1; i++ )
{
std::cout << std::setw( width ) << "{\n";
width += 3;

for ( size_t j = 0; j < n2; j++ )
{
std::cout << std::setw( width ) << "{ ";

for ( const auto &item : a[j] )
{
std::cout << std::setw( 2 ) << item << ' ';
}

std::cout << "}\n";
}

width -= 3;
std::cout << std::setw( width ) << "}\n";
}

width -= 4;
std::cout << std::setw( width ) << "}\n";

for ( size_t i = 0; i < n1; i++ )
{
delete [] a;
}

delete [] a;
}

Вывод программы на консоль

 
{
{
{ 0 1 2 3 }
{ 4 5 6 7 }
{ 8 9 10 11 }
}
{
{ 12 13 14 15 }
{ 16 17 18 19 }
{ 20 21 22 23 }
}}
­

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 2 [только новые]





ссылка на сообщение  Отправлено: 04.10.19 15:39. Заголовок: ­Reversing a stack. ..


*PRIVAT*

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 13.11.19 21:45. Заголовок: ­In the secition "..


*PRIVAT*

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 16
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет