LINUX.ORG.RU

История изменений

Исправление AlexM, (текущая версия) :

Ну, тут вопрос.

Если вы твёрдо знаете, что вам в каком-то месте нужен кольцевой буфер, то, конечно, да, проще взять узкоспециализированную реализацию, и всё.

А если в рамках требований к задаче мечетесь, например, между очередью и кольцевым буфером, то может захотеться иметь у двух классов общий интерфейс, подчиняющийся каким-то правилам. Типа, попробовали так, попробовали сяк, и ещё, не приведи Ктулху, на рантайм какое-то решение отнесли. Во всяком случае, изначально плюсовые контейнеры к такому варианту использования и готовили.

И тут в полный рост встаёт необходимость поддерживать те, очевидно, не самые продуманные интерфейсы, которые определены для libstdc++ контейнеров. Точнее, так: интерфейсы, может, и продуманные, но для какого-то специфичного варианта использования, а потом «мир» решил, что лучше действовать по-другому.

Поэтому и громоздкость.

Исправление AlexM, :

Ну, тут вопрос.

Если вы твёрдо знаете, что вам в каком-то месте нужен кольцевой буфер, то, конечно, да, проще взять узкоспециализированную реализацию, и всё.

А если в рамках требований к задаче мечетесь, например, между очередью и кольцевым буфером, то может захотеться иметь у двух классов общий интерфейс, подчиняющийся каким-то правилам. Типа, попробовали так, попробовали сяк, и ещё, не приведи Ктулху, на рантайм какое-то решение отнесли.

И тут в полный рост встаёт необходимость поддерживать те, очевидно, не самые продуманные интерфейсы, которые определены для libstdc++ контейнеров. Точнее, так: интерфейсы, может, и продуманные, но для какого-то специфичного варианта использования, а потом «мир» решил, что лучше действовать по-другому.

Поэтому и громоздкость.

Исходная версия AlexM, :

Ну, тут вопрос.

Если вы твёрдо знаете, что вам в каком-то месте нужен кольцевой буфер, то, конечно, да, проще взять узкоспециализированную реализацию, и всё.

А если в рамках требований к задаче мечетесь, например, между очередью очередью и кольцевым буфером, то может захотеться иметь у двух классов общий интерфейс, подчиняющийся каким-то правилам. Типа, попробовали так, попробовали сяк, и ещё, не приведи Ктулху, на рантайм какое-то решение отнесли.

И тут в полный рост встаёт необходимость поддерживать те, очевидно, не самые продуманные интерфейсы, которые определены для libstdc++ контейнеров. Точнее, так: интерфейсы, может, и продуманные, но для какого-то специфичного варианта использования, а потом «мир» решил, что лучше действовать по-другому.

Поэтому и громоздкость.