Что лучше использовать std::vector или простой массив в c++?

Имею небольшой опыт в программирование на языке c++. Появилась задача анализа данных поступающих от некоторого сенсора (фильтрация, шумоподавление и др).
Данные находятся в виде чисел double.
Вопрос такой: что лучше использовать для работы с такими данными? Простой динамический массив или std::vector или может быть что-нибудь другое?
  • Вопрос задан
  • 5331 просмотр
Решения вопроса 2
difiso
@difiso
В параллельной вселенной я космонавт
Из массива и vector'а лучше использовать vector - там итераторы есть, а это более удобный обход массива и при обходе сложнее за границы выйти. Можно еще в сторону List посмотреть, но там данные хранятся по другому и list занимает памяти немного больше в общем случае.
Ответ написан
@DancingOnWater
В вашем случае вектор однозначно удобнее будет как владелец памяти: упрощается многие рутинные выделения и освбождения.
А вот выбор способа доступа к элементам зависит от ответов на следующие вопросы:
1) Потребуется ли вам арифметика?
2) Возможна ли векторизация ваших операций?

Если хотя бы на один отвечаете да - с помощью вектора получите указатель и дальше используйте сырые указатели. В противном случае используете те методы доступа, что предлагает контейнер
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
tsarevfs
@tsarevfs Куратор тега C++
C++ developer
vector практически всегда не хуже обычного массива.
Ответ написан
Комментировать
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
я бы ring-buffer организовал, если это дело в реалтайме надо делать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы