有人可以告诉我vector和deque之间有什么区别.我知道在C++中实现vector而不是deque.地图和集合的界面看起来与我类似.两者之间有什么区别,何时使用一个.
Vit*_*con 48
std :: vector:一个动态数组类.内部内存分配确保它始终创建一个数组.当数据大小已知且已知不会经常更改时很有用.当你想要随机访问元素时也很好.
std :: deque:可以充当堆栈或队列的双端队列.当您不确定元素的数量以及访问数据元素时始终采用串行方式时,这样做很有用.当从前端和末尾添加/移除元素时它们很快,但是当它们被添加到中间/从中间移除时不是很快.
的std ::名单:双链表,可用于创建数据的"列表".列表的优点是可以从列表的任何部分插入或删除元素,而不会影响指向列表成员的迭代器(并且在删除后仍然是列表的成员).当您知道将从列表的任何部分经常删除元素时很有用.
std :: map:将'key'映射到'value'的字典.对于索引不是整数的"数组"这样的应用程序很有用.基本上可用于为元素创建名称的映射列表,例如存储名称到窗口小部件关系的映射.
的std ::设为:"唯一"数据值的列表.例如,如果插入1,2,2,1,3,则列表将只包含元素1,2,3.请注意,此列表中的元素始终是有序的.在内部,它们通常被实现为二叉搜索树(如map).
有关详细信息,请参见此处
双端队列与向量相同,但增加了以下内容:
这意味着deque与向量相同,但提供以下额外保证:
映射是"Pair Associative Container",而set是"Simple Associative Container"
这意味着它们完全相同.区别在于地图包含项目对(键/值)而不仅仅是一个值.
归档时间: |
|
查看次数: |
16810 次 |
最近记录: |