Страницы

Поиск по вопросам

среда, 10 октября 2018 г.

Обычный массив VS std::array

Используют ли вообще на практике шаблон std::array? Если да, то почему? И быстрее ли он работает, чем обычные массивы?


Ответ

Шаблон std::array позволяет использовать родной (сишный) тип массива (T[]) в качестве объекта первого класса. Т.е. такой объект можно передавать в функцию и возвращать из неё, не боясь неявного преобразования массива к указателю и тем самым потери размерности.
std::array это агрегатный тип, т.е. не имеющий пользовательских конструкторов и по сути является обычной обёрткой над сишным массивом. На практике это обычно означает, что никакой лишней вычислительной нагрузки в runtime это не несёт, но и быстрее сырого массива он работать не может.

Комментариев нет:

Отправить комментарий