Мне кажется, здесь уместнее сказать, что С++ для этой задачи ничем не лучше С. Конечно, можно писать на С++, но не использовать ничего существенного, что отличает С и С++, однако не ясно, зачем, если по сути получается написание на С.
А использовать существенные особенности С++ тут либо не нужно, либо нельзя. Скажем, использовать STL для хранения информации нельзя, так как критическим является объем потребляемой оперативной памяти, а используя STL мы далеко не всегда знаем, сколько на что будет ее выделяться, это зависит от реализации. Полиморфизм не понадобится ни статический, ни динамический: ни шаблоны, ни виртуальные функции не нужны, так как все структуры данных жестко заданы и оптимизированы для конкретных типов данных и не используются много раз для разных типов. Не говоря опять же про лишние четыре байта для указателя на таблицу виртуальных функций — ведь речь идет об огромном количестве малых по размеру объектов.
А без всего этого остается не C++, а некий «C с классами», в котором разрешили вносить функции внутрь структур и вызывать через '.' или '->' — но этим можно пренебречь.
Источник: habrahabr.ru
|
|