`
standalone
  • 浏览: 614311 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

STL vector and list Difference

    博客分类:
  • c++
UP 
阅读更多

If you are using STL fist time , you can see that these are the classes for holding a gropup of things.
You need to include #include <vector> and #include <list> for using these classes, also specify they are in std namespace . This can be
done by using namespace std;
 
We all know these stuff. So what is the difference between vector and list ? When i compared the names first time , i can't see any difference, v ector is something which has magnitude and direction in maths ( just joking) and list is our linked list ( doubly or single ).  No it is not like that , Actually the vector class only allows to insert in the back side or front side ( No addition in between ). But list allows.  list has function like insert() , using which we can insert to any position. You may think then why we need vector? Ofcourse we need because , list costs perfomance degrade for allowing us to insertion in between the two ends. So If you don't want to insert in between the front and last end , use vector. This can be speed up your perfomance.
 
One other differece is in vector each elements can be accesses using [] . But in list it won't possible.
 
These are the Key differece. In implementation wise vector is like dynamic array (When i say dynamic array u may think that "Is that same linked list ???"   , Not exactly ,the STL doc says that they have done some perfomance tuning for vector) , and list is the same linke list

分享到:
评论

相关推荐

    C++ STL开发技术导引(第5章)

    第一篇 预备知识 第1章 C++编程技术 2 1.1 类和对象 2 1.2 类的继承 5 1.3 函数重载 5 1.4 访问控制 7 1.5 操作符重载 8 1.6 显式类型转换 9 1.7 异常处理 13 ...附录 STL版权说明 438

    STL源码剖析读书笔记

    * 容器(container):各种数据结构,如vector、list、deque、set、map等 * 算法(algorithm):各种常用算法,如sort、search、copy、erase等 * 迭代器(iterator):扮演容器与算法之间的胶着剂 * 仿函式...

    STL容器和算法函数表

    `vector&lt;T&gt;`是C++标准模板库(STL)中的动态数组实现,能够自动调整其大小,提供了高效的随机访问能力,是C++中最常用的数据结构之一。 ##### 容器属性 - `value_type`: 类型`T`,即`vector`中存储的对象类型。 - `...

    STL源码剖析.pdg

    logical_and, logical_or, logical_not 7.6 证同(identity)、选择(select)、投射(project) 423 identity, select1st, select2nd, project1st, project2nd 第8章 配接器(adapter) 425 8.1 配接器之概观与...

    c++标准库STL手册

    - **Vector**: 动态数组,支持随机访问,提供快速的元素插入和删除操作。 - **List**: 双向链表,适用于频繁插入和删除的场景。 - **Deque**: 双端队列,支持两端的插入和删除,类似于扩展的动态数组。 - **Set/...

    stl的学习:c++ STL

    - **向量(Vector)**:动态数组,支持在任意位置插入和删除元素,但插入和删除可能导致元素重新排列。 - **列表(List)**:双向链表,插入和删除速度快,但查找速度相对较慢。 - **集合(Set)**:基于红黑树的...

    STL中文手册

    - **集合操作**:`set_union`、`set_intersection`、`set_difference`和`set_symmetric_difference`用于计算两个集合的并集、交集、差集和对称差集。 - **其他算法**:如`transform`、`copy`、`unique`、`reverse`...

    c++ STL 库使用示例

    - **集合操作**:`set_union()`、`set_intersection()`、`set_difference()`和`set_symmetric_difference()`用于集合运算。 - **迭代器操作**:`advance()`、`next()`和`prev()`帮助移动迭代器位置。 - **复制...

    STL学习代码STL学习代码

    5. **栈(Stack)**:基于顺序容器(通常是Vector或List)的后进先出(LIFO)数据结构。 6. **队列(Queue)**:基于顺序容器的先进先出(FIFO)数据结构。 7. **优先队列(Priority Queue)**:堆实现的优先级队列,每次...

    stl详解 包括各种实例代码

    2. **容器**:用于存储和管理数据结构,如vector、list等。 3. **迭代器**:作为容器和算法之间的桥梁,使得不同的容器可以共享同一组算法。 4. **适配器**:用于改变容器的行为或接口。 5. **分配器**:管理内存的...

    C++ STL库知识总结

    容器如vector、list、deque、set和map等,它们分别提供了不同类型的存储和访问方式。分配器是管理内存分配的机制,不建议直接使用,通常由容器内部管理。算法是一系列处理容器元素的通用操作,如排序、查找和转换等...

    C++ STL 开发技术导引(第6章)

    第一篇 预备知识 第1章 C++编程技术 2 1.1 类和对象 2 1.2 类的继承 5 1.3 函数重载 5 1.4 访问控制 7 1.5 操作符重载 8 1.6 显式类型转换 9 1.7 异常处理 13 ...附录 STL版权说明 438

    算法题常用STL_STL_

    - **集合操作**:`set_union`、`set_intersection`、`set_difference`和`set_symmetric_difference`用于集合的合并、交集、差集和对称差集。 - **其他**:还包括`transform`、`copy`、`unique`、`inplace_merge`等...

    STL入门指导c++

    1. **顺序容器**:如`vector`(动态数组)、`deque`(双端队列)、`list`(双向链表)和`forward_list`(单向链表),它们按照元素的插入顺序进行存储。 2. **关联容器**:如`set`(集合)、`multiset`(多重集合)、`map`(映射...

    STL_资料(袁辉勇_整理)

    - **序列容器**(Sequence Container):如`vector`、`deque`、`list`等,它们按照线性方式存储元素。 - **vector**(向量):动态数组,支持快速的随机访问。 - **deque**(双端队列):两端都可以进行插入和删除...

    stl.zip_C++_STL

    - **向量(vector)**:动态数组,支持在任意位置插入和删除元素,自动调整大小。 - **列表(list)**:双向链表,插入和删除操作效率高,但随机访问性能较差。 - **集合(set)**:基于红黑树的关联容器,存储唯一...

    STL源代码剖析笔记

    为了支持不同类型的迭代器,STL定义了一组与迭代器相关的类型,例如`value_type`、`difference_type`等,这些类型使得迭代器能够更好地适应不同类型的数据。 ##### 3.4 Traits编程技巧—STL源代码之钥 Traits技术...

    Effective STL

    - 考虑到容器的内存管理特性,例如动态数组`vector`与链表`list`的不同之处。 **2. 小心容器独立代码的错觉(Beware the illusion of container-independent code)** - **概述**:编写看似容器独立的代码可能...

    STL用户手册

    - 用于逻辑运算的函数对象(如`logical_and`、`logical_or`等)。 - 用于关系运算的函数对象(如`equal_to`、`not_equal_to`等)。 #### C++ Vectors - **概念**:`vector`是一种动态数组,可以自动调整大小。 - ...

Global site tag (gtag.js) - Google Analytics