vector vs valarray

374
03 февраля 2017, 05:17

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

Answer 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 (или любой другой подходящий контейнер).

READ ALSO
Оптимизация запроса в MySQL

Оптимизация запроса в MySQL

Приветствую, появилась проблема в ходе увеличения количества записей в бдВот такой запрос выполняется ~6s

334
Multi-master репликация MySQL

Multi-master репликация MySQL

Для двух хостов все просто: указываю для первого хотся второй в качестве головного сервера, а для второго - первый (с помощью команды SQL change...

314
MySQL 5.7 смена пароля

MySQL 5.7 смена пароля

Не могу сменить пароль, mysql 57

757
Беда с кавычками при запросе по средствам Delphi из БД mySQL

Беда с кавычками при запросе по средствам Delphi из БД mySQL

Вычитал на одном форуме, что избегания попадания кавычек из БД, лишь прибегать к функции StringReplace и иного пути, какого-нибудь хитрого экранирования,...

448