Я разрабатываю симуляцию на основе OpenGL в C++. Теперь я optmizing мой код, и я вижу на протяжении всего кода частое использование std: list и std: vector. Что еще более важно: продолжить использование структур данных stl stl или связанных с указателем ссылок? Основная операция, которая включает std :: list и std :: vector, открывает итератор и циклически перемещает все элементы в структурах данных и применяет некоторую обработкуC++ stl коллекции или связанные списки
ответ
Как насчет stl контейнеров указателей?
Очень маловероятно, что вы сможете разработать более эффективные структуры, чем встроенные. Единственная нижняя часть - это контейнеры, на самом деле содержащие копии объектов, хранящихся в них. Если вы беспокоитесь об этой накладной памяти (несколько структур, которые содержат несколько копий одних и тех же объектов, нарушая согласованность по всей таблице), вы должны подумать об использовании stl-структур указателей в том, что вам нужно.
Алгоритмически, структура, в которой вы нуждаетесь, реализована в stl, поэтому вы должны ее использовать. Нет необходимости переопределять одну и ту же структуру.
Используйте C++ STL структуры данных, но используйте их эффективно. Если вы используете зЬй :: список и зЬй :: вектор, искать такие функции, как найти, for_each, аккумулировать и т.д. Вот некоторые хорошие чтение: http://www.cplusplus.com/reference/
Прочитайте разделы по алгоритму, числовой и функциональный , Кроме того, я настоятельно рекомендую эффективный STL Скотта Мейерса.
- 1. Связанные с C++ списки
- 2. C: связанные списки спутанность
- 3. Связанные списки - C
- 4. C - Связанные списки
- 5. Указатели Связанные списки C
- 6. Связанные списки или хеш-таблицы?
- 7. Связанные списки C Удаление узла
- 8. C++ связанные списки, удаляющие узлы
- 9. C Указатели и связанные списки
- 10. Нажмите на связанные списки - C
- 11. Структуры и связанные списки (C)
- 12. Linking Связанные списки в C
- 13. Двойные связанные списки в C++
- 14. Указатели Связанные списки C Программирование
- 15. Связанные списки/указатели в C
- 16. Связанные списки личные указатели C++
- 17. Вложенные связанные списки в C
- 18. Связанные списки, программа в C
- 19. Связанные списки QuickSorting в C
- 20. C - Массив, содержащий связанные списки
- 21. Связанные списки C/-> Operator
- 22. сильно связанные компоненты с ошибкой stl C++?
- 23. Вставить в связанные списки
- 24. Связанные списки Confusion
- 25. C - связанные списки для сомнений в петле
- 26. Коллекции - Списки
- 27. Связанные списки со строками
- 28. Связанные списки в Lua
- 29. Связанные списки проблем
- 30. C++ Связанные списки с несколькими файлами
Если вы еще не профилировали свой код, вы задаете вопрос преждевременно. Вы должны знать, прежде чем попасть сюда, если std :: list или std :: vector занимают непропорциональное количество времени. –
Я подозреваю, что если вы прокомментируете свой код, вы увидите, что использование STL не самое медленное. Не беспокойтесь, задавая этот вопрос, пока это не самая медленная вещь ... в полностью оптимизированном режиме выпуска. –
Просто FYI, «перформанс» - это слово, которое я чаще всего слышу для того, что вы называете «перформативным». – sblom