Форум программистов, компьютерный форум, киберфорум
sourcerer
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  

9 способов вывести массив на консоль

Запись от sourcerer размещена 09.12.2016 в 21:29
Показов 5794 Комментарии 2

#1: old classic for loop - access to elements by index (C++03 way)

C++
1
2
3
4
5
6
7
8
9
#include <iostream>
 
int main()
{
    const unsigned int ARR_SIZE = 5;
    int arr[ARR_SIZE] = { 1, 4, 8, 8, 2 };
    for ( unsigned int i = 0; i < ARR_SIZE; ++i )
        std::cout << arr[i] << " ";
}

#2: ranged-based for (C++11 way)

C++
1
2
3
4
5
6
7
8
#include <iostream>
 
int main()
{
    int arr[] { 1, 4, 8, 8, 2 };
    for ( const auto elem : arr )
        std::cout << elem << " ";
}

#3: traditional function with pointer and array size as arguments and oldschool for loop (C++03 way)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
void show( int * arr, const unsigned int arr_size )
{
    for ( unsigned int i = 0; i < arr_size; ++i )
        std::cout << arr[i] << " ";
    std::cout << "\n";
}
 
int main()
{
    const unsigned int ARR_SIZE = 5;
    int arr[ARR_SIZE] = { 1, 4, 8, 8, 2 };
    show( arr, ARR_SIZE );
}

#4: template function and ranged-based for (C++11 way)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
template <class T>
void show( const T & arr )
{
    for ( const auto & elem : arr )
        std::cout << elem << " ";
    std::cout << "\n";
}
 
int main()
{
    int arr[] { 1, 4, 8, 8, 2 };
    show( arr );
}

#5: simple function with two pointers (begin, end) as arguments (C++03 STL way)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
void show( int * arr_begin, int * arr_end )
{
    for ( int * iter = arr_begin; iter != arr_end; ++iter )
        std::cout << *iter << " ";
    std::cout << "\n";
}
 
int main()
{
    const unsigned int ARR_SIZE = 5;
    int arr[ARR_SIZE] = { 1, 4, 8, 8, 2 };
    show( arr, arr + ARR_SIZE );
}

#6: algorithm std::copy and iterators (C++11 STL way)

C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include <algorithm>
#include <iterator>
 
int main()
{
    int ar[] { 1, 4, 8, 8, 2 };
    std::copy( std::begin( ar ), std::end( ar ), std::ostream_iterator<int>( std::cout, " " ) );
}

#7: algorithm std::ranges::copy, std::iota and iterators (C++20 STL way)

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <algorithm>
#include <numeric>
#include <iterator>
 
int main()
{
    int arr[20];
    std::iota(std::begin(arr), std::end(arr), 10);
    std::ranges::copy(arr, std::ostream_iterator<int>(std::cout, " "));
    std::cout << '\n';
}

#8: function that uses algorithm std::for_each and lambda (C++11 STL FP-paradigm way)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <algorithm>
 
void show( int * arr_begin, int * arr_end )
{
    std::for_each( arr_begin, arr_end, []( int i ){ std::cout << i << " "; } );
    std::cout << "\n";
}
 
int main()
{
    const unsigned int ARR_SIZE = 5;
    int arr[ARR_SIZE] = { 1, 4, 8, 8, 2 };
    show( arr, arr + ARR_SIZE );
}

#9: function that uses algorithm std::ranges::for_each and lambda (C++20 FP-paradigm STL way)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <algorithm>
 
void show(const auto &arr)
{
    std::ranges::for_each(arr, [](int i) { std::cout << i << ' '; });
    std::cout << '\n';
}
 
int main()
{
    int arr[] {1, 4, 8, 8, 2};
    show(arr);
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 2
Комментарии
  1. Старый комментарий
    А разве в функции show первый аргумент - указатель на массив - не должен быть const?
    Запись от maksim32 размещена 09.01.2017 в 21:29 maksim32 вне форума
  2. Старый комментарий
    Аватар для sourcerer
    А разве в функции show первый аргумент - указатель на массив - не должен быть const?
    Хмм... Да, вполне можно сделать const:
    C++
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    #include <iostream>
     
    void show( const int* const arr, const unsigned int arr_size )
    {
        for ( unsigned int i = 0; i < arr_size; ++i )
            std::cout << arr[i] << " ";
        std::cout << "\n";
    }
     
    int main()
    {
        const unsigned int ARR_SIZE = 5;
        int arr[ARR_SIZE] = { 1, 4, 8, 8, 2 };
        show( arr, ARR_SIZE );
    }
    Запись от sourcerer размещена 27.01.2017 в 21:01 sourcerer вне форума
 
Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru