Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
randy92
7 / 7 / 2
Регистрация: 23.04.2014
Сообщений: 59
#1

Нужны ли в реальной практике массивы? - C++

11.07.2014, 18:06. Просмотров 981. Ответов 27
Метки нет (Все метки)

Вопрос такой: нужны ли в реальной практике массивы? Или это лишь пережиток С? Имеют ли массивы реальные преимущества перед векторами, например?
Почему спрашиваю - сейчас изучаю STL алгоритмы, такие как sort(), reverse(), find() и проч. и кажется это все очень удобным при использовании с векторами. Так нужны ли массивы после этого?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2014, 18:06     Нужны ли в реальной практике массивы?
Посмотрите здесь:

Общие вопросы для реальной работы C++
C++ нужны классы
C++ Структуры данных на практике
Может ли вообще на практике возникнуть ситуация, когда определенный класс следует указывать как друго самого себя? C++
Какие значения нужны нужны циклу while? C++
Зачем нужны обычные массивы, если есть динамические? C++
Задачи приближенные к реальной работе C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Voivoid
 Аватар для Voivoid
589 / 265 / 12
Регистрация: 31.03.2013
Сообщений: 1,324
12.07.2014, 18:58     Нужны ли в реальной практике массивы? #21
Цитата Сообщение от DrOffset Посмотреть сообщение
Ну дык, а я о чем?!
Ну, это по-моему и так очевидно. Об этом как-то странно речь заводить.


Я-то имел в виду всякие мифы и легенды которые сочиняют C'шники которым когда-то довелось столкнуться с C++, но разобраться с которым они до конца или не смогли или не захотели. Все что они не поняли у них автоматически переходило в категорию 'тормозная фигня' std::vector тож не избежал этой участи, лол. Ну, я не спорю, наверное на заре появления первых компиляторов C++ все действительно было не очень радужно. Но уже по меньшей мере к началу 2000-х большая часть проблем было успешна решена. Но C'шников уже не исправить, все эти мифы и легенды переходят из поколение в поколение и похоже их уже не искоренить

Цитата Сообщение от DrOffset Посмотреть сообщение
Оверхед - это понятие реальной задачи, а не абстрактных инструментов
Ну если бы скажем C++ не поддерживал inline функций, то у операции получения элемента вектора был бы вполне себе объективный недостаток по сравнению с массивом.

Кстати если уж на то пошло, то массив в первую очередь надо сравнивать с std::array
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DrOffset
6817 / 4028 / 924
Регистрация: 30.01.2014
Сообщений: 6,847
12.07.2014, 19:03     Нужны ли в реальной практике массивы? #22
Цитата Сообщение от Voivoid Посмотреть сообщение
Но C'шников уже не исправить, все эти мифы и легенды переходят из поколение в поколение и похоже их уже не искоренить
Очень печально, что ты меня автоматом отнес к любителям мифов.
Ты одно пойми, мне для тебя распинаться смысла нет. А вот ТС и остальные товарищи без опыта, прочитают коммент и будет у них тот же миф, только наоборот. И будут пихать они вектор во все задачи, в которые можно и нельзя, ведь на форуме же сказали, что оверхеда нет. Я же старался сделать акцент на инструменте применительно к задаче, чтобы они оценивали конкретно и комплексно, а не в общем и по-отдельности.
Voivoid
 Аватар для Voivoid
589 / 265 / 12
Регистрация: 31.03.2013
Сообщений: 1,324
12.07.2014, 19:09     Нужны ли в реальной практике массивы? #23
Цитата Сообщение от DrOffset Посмотреть сообщение
Очень печально, что ты меня автоматом отнес к любителям мифов.
Лол, ну я вообще-то не про тебя, с чего ты взял-то?

Цитата Сообщение от DrOffset Посмотреть сообщение
И будут пихать они вектор во все задачи, в которые можно и нельзя
И это кстати будет значительно лучше. С векторами-то побезопаснее будет, хоть с памятью проблем будет меньше чем если бы руками они все в массивах бы копошились. А на производительность пофиг, все равно уровень задач не тот.
DrOffset
6817 / 4028 / 924
Регистрация: 30.01.2014
Сообщений: 6,847
12.07.2014, 19:16     Нужны ли в реальной практике массивы? #24
Цитата Сообщение от Voivoid Посмотреть сообщение
меньше чем если бы руками они все в массивах бы копошились
Ну а я не предлагал жесткую альтернативу: если не вектор, то копошимся руками в массивах.

Добавлено через 50 секунд
Цитата Сообщение от Voivoid Посмотреть сообщение
А на производительность пофиг, все равно уровень задач не тот.
Ну это смотря у кого
Voivoid
 Аватар для Voivoid
589 / 265 / 12
Регистрация: 31.03.2013
Сообщений: 1,324
12.07.2014, 19:24     Нужны ли в реальной практике массивы? #25
Цитата Сообщение от DrOffset Посмотреть сообщение
Ну а я не предлагал жесткую альтернативу: если не вектор, то копошимся руками в массивах.
В смысле? А какие могу быть еще варианты? Или std::vector( std::array ) или голый массив. В случае с голым массивом ручной работы больше.

Цитата Сообщение от DrOffset Посмотреть сообщение
Ну это смотря у кого
Очевидно, что у
Цитата Сообщение от DrOffset Посмотреть сообщение
остальные товарищи без опыта
DrOffset
6817 / 4028 / 924
Регистрация: 30.01.2014
Сообщений: 6,847
12.07.2014, 19:34     Нужны ли в реальной практике массивы? #26
Цитата Сообщение от Voivoid Посмотреть сообщение
А какие могу быть еще варианты? Или std::vector( std::array ) или голый массив. В случае с голым массивом ручной работы больше.
Как будто мало на свете контейнеров с подобной семантикой.

Мне вот, кстати, из-за зануления вектором своей памяти, как-то таки пришлось писать альтернативный контейнер для хранения исключительно POD-типов.
Voivoid
 Аватар для Voivoid
589 / 265 / 12
Регистрация: 31.03.2013
Сообщений: 1,324
12.07.2014, 19:53     Нужны ли в реальной практике массивы? #27
Цитата Сообщение от DrOffset Посмотреть сообщение
Мне вот, кстати, из-за зануления вектором своей памяти, как-то таки пришлось писать альтернативный контейнер для хранения исключительно POD-типов.
И какие результаты стали?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.07.2014, 20:51     Нужны ли в реальной практике массивы?
Еще ссылки по теме:

C++ Применение принципов ООП на практике (мнение о приведенном коде)
База данных с++ "Добыча угля" (Отчет по практике) C++
Какими средствами С++ делать захват не с веб, а с реальной камеры? C++
Для чего нужны переменные, и прочее типа, константа, типы , массивы и т.к.д ? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
DrOffset
6817 / 4028 / 924
Регистрация: 30.01.2014
Сообщений: 6,847
12.07.2014, 20:51     Нужны ли в реальной практике массивы? #28
Цитата Сообщение от Voivoid Посмотреть сообщение
И какие результаты стали?
Порядка 5% выигрыш в скорости на общей сумме чтение-запись. Вектор использовался в качестве временного буфера для текстовых данных. В стиле выделили память, считали данные в контейнер - работаем, закончили работать, данные освободили и т.д. много-много раз. Сразу говорю, железо - не x86. На той задаче эти 5% позволили уложиться в требование ТЗ на задержки при передаче и обработке данных.
Yandex
Объявления
12.07.2014, 20:51     Нужны ли в реальной практике массивы?
Ответ Создать тему
Опции темы

Текущее время: 03:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru