Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Разработать приложение приложение https://www.cyberforum.ru/ cpp-beginners/ thread1942124.html
Задача: нужно написать приложение, которое будет регистрироваться на порту 80, и в случае прихода HTPP-запроса передавать фиксированную html-страницу.
Написать программу с функцией для поиска экстремального (наибольшего или наименьшего) элемента массива C++
Написать программу с функцией для поиска экстремального (наибольшего или наименьшего) элемента массива. Массив заполнить случайными числами. :help: :gsad:
Преобразовать число в соответствии со значениями его цифр C++
Помогите написать код :gcray: Дано n-значное число longint. Если цифра старшего разряда больше цифры младшего разряда, то исходное число увеличить вдвое, в противном случае вычесть из него число,...
C++ Выделить в массиве число выделить его каким-нибудь цветом Выделить минимальное и максимальное значение в массиве каким-нибудь цветом отличающимся от остальных элементов массива.Вывести массив на экран. Подскажите пожалуйста!!! setlocale(LC_ALL, "rus"); ... https://www.cyberforum.ru/ cpp-beginners/ thread1942113.html
C++ Чтение и вывод информации из файла https://www.cyberforum.ru/ cpp-beginners/ thread1942090.html
Имеется текстовый файл zarplaty.txt. Необходимо вывести содержимое файла на экран в консоль.(объясните ещё как с русским языком обстоит дело) Содержимое файла zarplaty: Ivanov: 15.000.00...
Считать массив данних структурного типа и вывести их в файл с использованием stdio.h C++
#include <iostream> #include <windows.h> using namespace std; struct Date { int month; int day; int year; };
C++ Преобразование чисел из строки
Вот код #include<iostream> #include<cstring> #include<cstdlib> #include<cmath> int main(){ char *p; char c="10 50 45"; p=c;
C++ Изменить порядок следования элементов в массиве используя указатели Вот что есть, почему не работает правильно не понимаю, подскажите плиз) # include <iostream> using namespace std; //7.Пользуясь указателем на массив целых чисел, //изменить порядок... https://www.cyberforum.ru/ cpp-beginners/ thread1942078.html
C++ Вычисление функций с использованием их разложения в степенной ряд https://www.cyberforum.ru/ cpp-beginners/ thread1942070.html
помогите пожалуйста закончить лабу, не правильно получается цикл SE и, если несложно, помогите с оформлением в отдельные функции Буду очень благодарен! вот задание само Для х изменяющегося от a...
C++ Что в программе делает так, что процессор грузится на 100%? Я не очень разбираюсь в С++, поэтому прошу вашей подсказки по поводу нагрузки на процессор. Вот код программы, на компьютере жрет всю память. Что тут не так? Подскажите нубу.#include < iostream >... https://www.cyberforum.ru/ cpp-beginners/ thread1942069.html
492 / 207 / 69
Регистрация: 27.05.2016
Сообщений: 551
0

Проинициализировать массив во время компиляции

20.03.2017, 01:11. Просмотров 936. Ответов 4
Метки (Все метки)


Проблема с распаковкой параметр-пака.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <utility>
 
constexpr unsigned long long fact(int n)
{
    unsigned long long res = 1;
    for (int i = 2; i <= n; ++i) res *= i;
    return res;
}
 
template <typename T, std::size_t N, size_t ... Indices>
void init(T (&arr)[N], std::index_sequence<Indices ...>)
{
    (arr[Indices] = fact(Indices))... ;
};
 
int main()
{
    unsigned long long factorials[10]; // = {fact(0), fact(1), fact(2), ..., fact(9)}
    init(factorials, std::make_index_sequence<10>());
}
Или предложите свой вариант.

Добавлено через 1 минуту
Типа сделать так:
C++
1
2
constexpr unsigned long long factorials[10] = {fact(0), fact(1), fact(2), ..., fact(9)};
constexpr int val = factorials[5];
Добавлено через 2 часа 19 минут
Получилось как то так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
template <typename T, typename Func, size_t ... Indices>
constexpr std::array<T, sizeof ... (Indices)> make_array(Func func, std::index_sequence<Indices ...>)
{
    return {(0, func(Indices))... };
};
 
int main()
{
    constexpr auto ar = make_array<unsigned long long>(fact, std::make_index_sequence<10>());
    constexpr unsigned long long val = ar[5];
    static_assert(val == 120, "");
}


Вернуться к обсуждению:
Проинициализировать массив во время компиляции
1
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.03.2017, 01:11
Готовые ответы и решения:

Объявить и проинициализировать массив
Объявить и проинициализировать массив из 10 вещественных чисел, вычислить сумму первых трёх...

Проинициализировать массив случайными символами от A до Z
Здравствуйте!Я не могу понять,что тут не так..помогите разобраться! Задача: типа char размером в...

Проинициализировать массив случайными символами от A до Z.
Проинициализировать массив случайными символами от A до Z. Как это можно сделать?

Как проинициализировать весь массив объектов?
// lab7.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot;...

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