Порівняння мов програмування за швидкодією

Типи і структури даних

Мова C надає механізми, які в даний час вважаються рудиментарними для структурованих типів даних. Масиви дозволяють вказувати однорідні колекції фіксованої довжини під час компіляції і мають дуже тісний зв’язок при маніпуляціях з покажчиками. Помітним недоліком є відсутність типів даних для подання рядків, які незвичайним чином підтримуються масивами символів.

Хоча цей «мінімалізм» сприяє підвищенню продуктивності виконання або оптимізації при компіляції, у багатьох випадках потрібна підтримка більш складних типів і пов’язаних з ними операцій, таких як вектори, списки, черги та інші. На практиці є кілька бібліотек, які доповнюють ці аспекти, наприклад, популярний Glib, але його програмування більш трудомістким, оскільки воно не вбудовано в мову. Наступний приклад ілюструє створення вектора динамічного масиву.

Зазвичай програміст повинен уникати такого роду реалізацій “з нуля”. Наступний приклад вирішує ту ж проблему, використовуючи бібліотеки Glib.

Зі свого боку, C ++ надає засоби, які дозволяють створювати дуже потужні структури даних і тісно інтегровані в мову. Також розробник може створювати свої власні типи з різними пов’язаними операціями.