Мне нужен контейнер таких контейнеров, как:
class Widget {
...
};
...
std::vector<std::list<Widget> > widgets;
Поскольку контейнеры STL копируют объекты в них, и копирование контейнера не является дешевой операцией, я думаю, что этот контейнер контейнеров может привести к очень плохой эффективности.и поэтому плохой дизайн.Я хочу знать, прав ли я.И если это так, я должен использовать контейнер указателей контейнера или что-то еще?Спасибо
ps
Спасибо вам, ребята, и теперь я знаю, плохой дизайн или нет, зависит от того, как я его использую.
Так что, если я знаю, сколько list
(максимум) будет вставлено в vector
, а затем использовать vector::reserve
, чтобы избежать перераспределения vector
, и после этого я просто запрашиваю объекты в нем, этоможет быть хорошим дизайном.
С другой стороны, если мне нужно время от времени вставлять list
в vector
, это может привести к очень плохой эффективности.
Яправо