维护Ordered的对象集合

Ara*_*and 4 c++ collections dynamic html-lists

我对一组对象有以下要求:

  • 动态尺寸(理论上无限制,但实际上几千个应该绰绰有余)
  • 有序,但允许在任意位置重新排序和插入.
  • 允许删除
  • 索引访问 - 随机访问
  • 计数

我存储的对象不大,有几个属性和一两个小数组(256个布尔值)

在我编写链表之前,是否有我应该知道的内置类?

Jer*_*ock 5

原始答案:这听起来像是std::list标准库中的(双向链表).

新答案:在更改规范之后,std::vector只要不超过几千个元素,并且在向量中间没有大量插入和删除,就可以工作.中间插入和删除的线性复杂度可能被矢量运算的低常数所抵消.如果您在开始和结束时进行大量插入和删除操作,std::deque也可以正常工作.