Страницы

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

среда, 5 февраля 2020 г.

vector vs valarray

#cpp


Зачем нужен std::vector<>, если есть потенциально более быстрый std::valarray<>?
    


Ответы

Ответ 1



Упомянутые классы используются для разных задач. std::vector для хранения последовательности любых однотипных элементов и обеспечения возможности изменения размера: Vectors are sequence containers representing arrays that can change in size. std::valarray для хранения массива значений и выполнения математических операций над ними. A valarray object is designed to hold an array of values, and easily perform mathematical operations on them. Выполняемые операции над объектами valarray могут быть оптимизированы в конкретных реализациях, например, для обеспечения параллельных вычислений. Т.о. если ваша задача - обработка чисел, то смысл использовать std::valarray есть. Если же нужно иметь контейнер объектов, не являющихся по сути математическими значениями, то использовать std::vector (или любой другой подходящий контейнер).

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

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