我正在搜索具有以下功能的容器:
std::list
那样)。std::list::splice
提供的内容)。 修改
想一个列表:我只需要将元素从任意位置移动到前面。
EDIT2:
我想使用std::list
之类的东西,但是利用运行时固定大小。
答案 0 :(得分:3)
我想到TR1数组:
std::array<T, int>
或者,如果你还没有,
boost::array<T, int>
对于所有意图和目的而言,这是相同的。当然,std :: swap on elements的有效性取决于正确的拷贝构造函数/赋值运算符的可用性。
答案 1 :(得分:2)
我不太清楚你在寻找什么。我想到了两个解决方案:std::vector
(使用最大大小创建),以及对象的swap
的良好实现,或std::list
的自定义分配器,它预先分配单个块中需要的节点数。
答案 2 :(得分:0)
您可以在施工时指定std::list
的(初始)尺寸:
std::list<Type> myList = std::list<Type>(10);
之后你仍然可以增长/缩小它,但该列表将从一开始就包含10个默认构造的Type对象。
这是否符合您的需求?
答案 3 :(得分:0)
std :: vector?
基于数组。可以指定大小并具有交换功能。
你还没有说过你将使用它,所以我真的不知道你是否会遇到任何速度问题。