Почему я могу объявить a
, но не могу b
?
std::array a = {1,2,3,4,5};
std::array<std::array> b = {{1,2,3,4,5}};
Потому что компилятор не знает, что {{1,2,3,4,5}}
- это именно std::array<std::array>>
. Вы пытаетесь уговорить компилятор вывести не просто параметр шаблона, но и шаблонный параметр параметра шаблона (если не запутался :))
Попробуйте так:
std::array a = {1,2,3,4,5};
std::array<std::array<int,5>,1> b = {{1,2,3,4,5}};
или так:
std::array b = {std::array{1,2,3,4,5}};
C std::array так не получится, зато получится с std::vector
vector<vector<int>> b = { {1,2,3,4,5}, {6,7,8} };
UPD: Без new и оборачивания каждой внутренней скобки в array:
//придётся посчитать сколько элементов в строке
std::size_t n = 5; // Все строки должны быть одинаковой длины
int m[][n] = { {1,2,3,4,5}, {6,7,8,9,10} };
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
пишу сервис который убивает приложение Google Chrome, основная задача в том, как отловить запуск Google Chrome? Можно сделать циклом в отдельном потоке,...
Я парсил сайт, все спаршиные данные я перевёл в строкиТеперь я должен поместить эти строки в таблицу