Вопросы по теме 'stdarray'

В чем разница между std::valarray и std::array
valarray класс выглядит так же, как array класс, не могли бы вы объяснить мне, где я предпочитаю valarray array или наоборот?
7388 просмотров
schedule 24.07.2023

С++ 11 возвращает std::array разных размеров
Я хотел бы создать такую ​​​​структуру: struct Arrays{ typedef unsigned char byte_t; std::array<byte_t, X>& get(int x, int y) { switch(x){ case 1: return arr_1.at(y); case 2: return...
2461 просмотров
schedule 05.10.2022

Объявление и инициализация массива в C++11
Вот 8 способов объявить и инициализировать массивы в C++11, которые подходят для g++ : /*0*/ std::array<int, 3> arr0({1, 2, 3}); /*1*/ std::array<int, 3> arr1({{1, 2, 3}}); /*2*/ std::array<int, 3> arr2{1, 2, 3}; /*3*/...
7506 просмотров
schedule 25.08.2023

Передать std::array в качестве ссылочного параметра
Я могу передать свой массив напрямую, но мне нужно знать, как передать его по ссылке. Я использую новый std::array с типом Element. Я пробовал несколько вещей, но они не работают. Я не уверен, как передать это как ссылку. Я запутался, и я не могу...
7464 просмотров
schedule 14.11.2022

Инициализировать std::array с подразумеваемой длиной
В C вы можете сделать int a[] = {1,2,3,4,5} , но C++11 std::array<int> a = {1,2,3,4,5} выдаст ошибку компиляции "слишком мало параметров шаблона". Как-нибудь обойти это?
199 просмотров
schedule 30.05.2022

Класс шаблона в std :: array
Можно ли добавить класс шаблона внутри std :: array без указания имени типа? Я имею в виду. template<typename T> class MyClass { ... } std::array<MyClass *> arr; Причина в том, что у меня есть своего рода хранилище, которое...
648 просмотров
schedule 01.04.2024

Как работает инициализатор std::array для char?
Я не уверен, как работает следующий код. Я думал, что вам нужно сделать {'h', 'e' ...etc...} , но, похоже, это работает нормально. С другой стороны, если вы сделаете std::array<const char* , он добавит только один элемент в массив. Существуют...
5053 просмотров
schedule 22.07.2023

Инициализация std::array с помощью std::initializer_list в списке инициализации конструктора
Рассмотрим следующий фрагмент кода: struct foo { std::vector<int> v; foo(std::initializer_list<int> L) : v{L} {} }; Приведенный выше код отлично компилируется и инициализирует v , как и ожидалось. Теперь рассмотрим следующий...
2334 просмотров
schedule 15.03.2024

В чем смысл .begin () и .end ()?
В каких случаях в массивах библиотеки C ++ полезно иметь функции-члены .begin() и .end() ? На cplusplus.com пример использования - перебор массива: for ( auto it = myarray.begin(); it != myarray.end(); ++it ) Но for (int i = 0; i...
1683 просмотров
schedule 11.05.2022

Как инициализировать класс, например std::array
Я пытаюсь написать класс-контейнер для векторной арифметики. Объекты статичны по размеру: template<typename T, unsigned N> class vec{ T data[N] = {0}; public: vec(std::initializer_list<T> ini){ std::copy(ini.begin(),...
158 просмотров
schedule 22.03.2023

std::array с агрегатной инициализацией на g++ генерирует огромный код
В g++ 4.9.2 и 5.3.1 этот код компилируется несколько секунд и создает исполняемый файл размером 52 776 байт: #include <array> #include <iostream> int main() { constexpr std::size_t size = 4096; struct S { float...
846 просмотров

Агрегатная инициализация std::array подобъектов с вложенными списками инициализаторов
Каков правильный способ инициализации агрегатного типа (например, std::array ) и его подобъектов с помощью вложенных списков инициализаторов в фигурных скобках? Я не хочу напрямую вызывать конструкторы подтипов. Это повторяющаяся проблема, и я...
155 просмотров

Получить размер std::array без экземпляра
Учитывая эту структуру: struct Foo { std::array<int, 8> bar; }; Как я могу получить количество элементов массива bar , если у меня нет экземпляра Foo ?
3932 просмотров
schedule 03.12.2022

Невозможно вывести параметр шаблона "N"
Я попытался свести это к минимуму: #include <array> template <std::size_t N> void f(int, std::array<int, N> const & = std::array<int, 0>()) { } int main() { f(10); } array_test.cpp:4:6: примечание:...
255 просмотров

Почему вывод класса шаблона С++ 17 не работает, когда я указываю некоторые параметры шаблона?
C++17 представил вывод аргументов шаблона класса . Хотя в большинстве случаев это не более чем синтаксический сахар, бывают случаи, когда он действительно приходит на помощь, особенно в общем коде, например в этом случае . Еще одним хорошим...
819 просмотров

Инициализация std::pair через std::initializer_list не работает при инициализации std::array?
Я хочу инициализировать std::array из std::pair через std::initializer_list . pair<int, int> p = {3,4};//ok array<pair<char,char>, 3> p = { make_pair('{','}'), make_pair('[',']'), make_pair('(',')') };//ok...
1901 просмотров

Инициализировать std::array элементов, не конструируемых по умолчанию?
Предположим, тип foo_t с идиомой именованного конструктора make_foo() . Теперь я хочу иметь ровно 123 foo - ни больше, ни меньше. Итак, я думаю о std::array<foo_t, 123> . Теперь, если бы foo_t можно было построить по умолчанию, я бы...
813 просмотров

Рассматривать простой старый массив данных как std::array
У нас есть большая база кода, в основном написанная на C . Мы много занимаемся числовой линейной алгеброй. В C мы используем double* с длиной 3 для моделирования трехмерного вектора. В C++ мы используем std:array<double,3> для...
322 просмотров
schedule 13.02.2024

Преобразование битовой маски uint64_t в std::array bool
Цель состоит в том, чтобы преобразовать std::uint64_t (который используется как битовая маска) в std::array<bool> . Этот вопрос аналогичен вопросу С# Как можно Я конвертирую int в массив bool? , но для C++ ищу алгоритм с наилучшей...
273 просмотров
schedule 06.05.2023

Есть ли эквивалент std::memset для std::array?
Есть ли эквивалент memset для std::array ? Я думаю, что memset должен работать лучше при инициализации массива до нуля, чем при цикле по массиву. Я искал один для std::array , но ничего не смог найти в Интернете.
1496 просмотров
schedule 15.12.2023