Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705

Как поместить массив в вектор массивов?

05.12.2024, 15:58. Показов 1871. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Друзья! Вот что мне надо:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <vector>
using namespace std;
 
int main()
{
    int foo [4];
    vector <int [4]> bar;
    bar.push_back (foo);
 
    return 0;
    
}
При компиляции такие вот ошибки. Не может он поместить вектор в массив векторов:

Bash
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
28
29
30
31
32
$ g++ main.cpp 
In file included from /usr/include/x86_64-linux-gnu/c++/12/bits/c++allocator.h:33,
                 from /usr/include/c++/12/bits/allocator.h:46,
                 from /usr/include/c++/12/vector:61,
                 from main_1.cpp:2:
/usr/include/c++/12/bits/new_allocator.h: In instantiation of ‘void std::__new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = int [4]; _Args = {const int (&)[4]}; _Tp = int [4]]’:
/usr/include/c++/12/bits/alloc_traits.h:516:17:   required from ‘static void std::allocator_traits<std::allocator<_Tp1> >::construct(allocator_type&, _Up*, _Args&& ...) [with _Up = int [4]; _Args = {const int (&)[4]}; _Tp = int [4]; allocator_type = std::allocator<int [4]>]/usr/include/c++/12/bits/stl_vector.h:1281:30:   required from ‘void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = int [4]; _Alloc = std::allocator<int [4]>; value_type = int [4]]’
main_1.cpp:9:16:   required from here
/usr/include/c++/12/bits/new_allocator.h:175:11: error: parenthesized initializer in array new
  175 |         { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/12/bits/new_allocator.h: In instantiation of ‘void std::__new_allocator<_Tp>::destroy(_Up*) [with _Up = int [4]; _Tp = int [4]]’:
/usr/include/c++/12/bits/alloc_traits.h:535:15:   required from ‘static void std::allocator_traits<std::allocator<_Tp1> >::destroy(allocator_type&, _Up*) [with _Up = int [4]; _Tp = int [4]; allocator_type = std::allocator<int [4]>]/usr/include/c++/12/bits/vector.tcc:501:28:   required from ‘void std::vector<_Tp, _Alloc>::_M_realloc_insert(iterator, _Args&& ...) [with _Args = {const int (&)[4]}; _Tp = int [4]; _Alloc = std::allocator<int [4]>; iterator = std::vector<int [4]>::iterator]/usr/include/c++/12/bits/stl_vector.h:1287:21:   required from ‘void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = int [4]; _Alloc = std::allocator<int [4]>; value_type = int [4]]’
main_1.cpp:9:16:   required from here
/usr/include/c++/12/bits/new_allocator.h:181:17: error: request for member ‘~int [4]in* __p’, which is of non-class type ‘int [4]’
  181 |         { __p->~_Up(); }
      |           ~~~~~~^~~
In file included from /usr/include/c++/12/vector:63:
/usr/include/c++/12/bits/stl_uninitialized.h: In instantiation of ‘constexpr bool std::__check_constructible() [with _ValueType = int [4]; _Tp = int (&&)[4]]’:
/usr/include/c++/12/bits/stl_uninitialized.h:182:4:   required from ‘_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = move_iterator<int (*)[4]>; _ForwardIterator = int (*)[4]]/usr/include/c++/12/bits/stl_uninitialized.h:372:37:   required from ‘_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, allocator<_Tp>&) [with _InputIterator = move_iterator<int (*)[4]>; _ForwardIterator = int (*)[4]; _Tp = int [4]]/usr/include/c++/12/bits/stl_uninitialized.h:397:2:   required from ‘_ForwardIterator std::__uninitialized_move_if_noexcept_a(_InputIterator, _InputIterator, _ForwardIterator, _Allocator&) [with _InputIterator = int (*)[4]; _ForwardIterator = int (*)[4]; _Allocator = allocator<int [4]>]/usr/include/c++/12/bits/vector.tcc:487:3:   required from ‘void std::vector<_Tp, _Alloc>::_M_realloc_insert(iterator, _Args&& ...) [with _Args = {const int (&)[4]}; _Tp = int [4]; _Alloc = std::allocator<int [4]>; iterator = std::vector<int [4]>::iterator]/usr/include/c++/12/bits/stl_vector.h:1287:21:   required from ‘void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = int [4]; _Alloc = std::allocator<int [4]>; value_type = int [4]]’
main_1.cpp:9:16:   required from here
/usr/include/c++/12/bits/stl_uninitialized.h:90:56: error: static assertion failed: result type must be constructible from input type
   90 |       static_assert(is_constructible<_ValueType, _Tp>::value,
      |                                                        ^~~~~
/usr/include/c++/12/bits/stl_uninitialized.h:90:56: note: ‘std::integral_constant<bool, false>::value’ evaluates to false
Ладно, не может. Но почему-то объявляет он такой вектор без проблем:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <vector>
using namespace std;
 
int main()
{
    int foo [4];
    vector <int [4]> bar;
    //bar.push_back (foo);
 
    return 0;
    
}
Bash
1
2
$ g++ main.cpp 
$

То есть вектор элементов объявлен может быть, а поместить туда элементы никак. Странно всё это. Сабж. Спасибо, кто откликнется.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.12.2024, 15:58
Ответы с готовыми решениями:

Массив: В массив b[11] поместить элементы двух массивов n[5], m[6].
извините сразу за глупый вопрос не могу решить простую задачу, мне нужно в массив b запихать другие два массива n, m вот что у меня вышло: ...

В массив C поместить макcимальные элементы из массивов A и B
В общем, есть два массива(A и B ) по n элементов, и есть 3 (C) массив, который должен состоять из 8 элементов. Нужно в массив C поместить...

Поместить в третий массив общие элементы двух массивов
здравствуйте. никак не могу додуматься как написать цикл по перебору элементов массива. Задача такая: есть два динамических массива. Нужно...

22
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13202 / 6837 / 1822
Регистрация: 18.10.2014
Сообщений: 17,294
06.12.2024, 18:04
Студворк — интернет-сервис помощи студентам
Отдельно стоит заметить, что если вас устраивает структура с такими "говорящими" именами полей как "one, two, three, four", значит вам на самом деле нужен был std::tuple. Хотя при условии однотипности полей по-прежнему лучшей версией tuple будет именно std::array.

То есть все равно в упор не ясно, что и зачем вы тут пытаетесь изобрести на ровном месте.
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
06.12.2024, 18:18  [ТС]
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
То есть все равно в упор не ясно, что и зачем вы тут пытаетесь изобрести на ровном месте.
да и не нужно вам. Чуваку, после сообщения которого вопрос был решён, всё было в упор ясно. Сразу. Без вые уточнений.
Как поместить массив в вектор массивов?
Ему спасибо ещё раз. Тему к закрытию.
0
фрилансер
 Аватар для Алексей1153
6472 / 5690 / 1131
Регистрация: 11.10.2019
Сообщений: 15,168
06.12.2024, 19:07
Цитата Сообщение от zss Посмотреть сообщение
2. У меня VS-2008, в которой еще нет std::array
внезапно, есть

//VS2008
C++
1
2
3
4
5
6
7
8
#include <array>
#include <iostream>
 
int main()
{
    std::tr1::array<int,3> a={1,2,3};
    std::cout<<a[2];
}

ЗЫ помню, как когда-то давно радовался, когда обнаружил там std::tr1::shared_ptr / std::tr1::weak_ptr
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.12.2024, 19:07
Помогаю со студенческими работами здесь

Поместить в третий массив произведение соответствующих элементов двух исходных массивов
Создать два одномерных массива длины 5. Элементы массива вводятся списком. Поместить в третий массив произведение соответствующих...

Сравнить знаки элементов двух массивов и поместить результаты в третий массив
Даны два массива одного размера, в которых нет нулевых элементов.Получить третий массив, каждый элемент которого равен 1, если элементы...

Поместить в третий массив среднее арифметическое соответствующих элементов исходных массивов
1.Создать два одномерных массива длины 5. Элементы массива вводятся списком. Поместить в третий массив среднее арифметическое...

В первый массив поместить по возрастанию отрицательные, а во второй - по убыванию положительные двух данных массивов
Есть два одномерных массива с размерностью 10. Оба массива выводятся через рандом в диапазоне от -10 до 10. Надо переместить элементы так,...

Как в один вектор поместить много классов?
Всем привет. Есть задумка а как сделать пока не ясно. Есть в наличии допустим много классов, в этих классах одинаковые интерфейсы ввода...


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru