История изменений
Исправление AlexM, (текущая версия) :
Ну, тут вопрос.
Если вы твёрдо знаете, что вам в каком-то месте нужен кольцевой буфер, то, конечно, да, проще взять узкоспециализированную реализацию, и всё.
А если в рамках требований к задаче мечетесь, например, между очередью и кольцевым буфером, то может захотеться иметь у двух классов общий интерфейс, подчиняющийся каким-то правилам. Типа, попробовали так, попробовали сяк, и ещё, не приведи Ктулху, на рантайм какое-то решение отнесли. Во всяком случае, изначально плюсовые контейнеры к такому варианту использования и готовили.
И тут в полный рост встаёт необходимость поддерживать те, очевидно, не самые продуманные интерфейсы, которые определены для libstdc++ контейнеров. Точнее, так: интерфейсы, может, и продуманные, но для какого-то специфичного варианта использования, а потом «мир» решил, что лучше действовать по-другому.
Поэтому и громоздкость.
Исправление AlexM, :
Ну, тут вопрос.
Если вы твёрдо знаете, что вам в каком-то месте нужен кольцевой буфер, то, конечно, да, проще взять узкоспециализированную реализацию, и всё.
А если в рамках требований к задаче мечетесь, например, между очередью и кольцевым буфером, то может захотеться иметь у двух классов общий интерфейс, подчиняющийся каким-то правилам. Типа, попробовали так, попробовали сяк, и ещё, не приведи Ктулху, на рантайм какое-то решение отнесли.
И тут в полный рост встаёт необходимость поддерживать те, очевидно, не самые продуманные интерфейсы, которые определены для libstdc++ контейнеров. Точнее, так: интерфейсы, может, и продуманные, но для какого-то специфичного варианта использования, а потом «мир» решил, что лучше действовать по-другому.
Поэтому и громоздкость.
Исходная версия AlexM, :
Ну, тут вопрос.
Если вы твёрдо знаете, что вам в каком-то месте нужен кольцевой буфер, то, конечно, да, проще взять узкоспециализированную реализацию, и всё.
А если в рамках требований к задаче мечетесь, например, между очередью очередью и кольцевым буфером, то может захотеться иметь у двух классов общий интерфейс, подчиняющийся каким-то правилам. Типа, попробовали так, попробовали сяк, и ещё, не приведи Ктулху, на рантайм какое-то решение отнесли.
И тут в полный рост встаёт необходимость поддерживать те, очевидно, не самые продуманные интерфейсы, которые определены для libstdc++ контейнеров. Точнее, так: интерфейсы, может, и продуманные, но для какого-то специфичного варианта использования, а потом «мир» решил, что лучше действовать по-другому.
Поэтому и громоздкость.