我最近从头开始编写了我的第一个程序,但不是该领域的专业人士,我担心我可能没有使用最合适的解决方案。
在我的程序中,我必须使用对象列表(和列表列表),在其中不断添加和删除元素,不一定在列表的开头或结尾。
给出要求,使用指针列表不是一种选择。
当我开始时,我只知道这个std::vector
类,因此我使用了它,尽管我知道它需要连续的内存,因此这种选择会导致重复的重新分配。
在尝试解决另一个问题时,我发现存在其他可能更适合此任务的类,例如std::list
和std::deque
。
我主要通过使用索引来访问对象
myvector[index].function();
我使用最多的标准功能是
myvector.size();
myvector.begin();
myvector.pop_back();
myvector.push_back();
myvector.insert(myvector.begin()+offset, number, new_element);
而且我没有重载任何函数/运算符。
您能否为我的范围推荐最佳容器/双向链表?是否可以与任何其他标准容器
无缝替代?
有什么特别需要注意的问题吗?std::vector