博客园的一篇关于vector源码的文章,可以更加深入的理解一下vector:STL源码剖析---vector

STL容器包括顺序式容器和关联式容器,主要介绍一下顺序式容器(vector、list、deque、queue、stack);

vector:其实可以就简单地理解为一个动态数组,可以从末尾直接添加元素,能改变数组大小。(参考一下百度百科定义: vector )

vector举例:

 

 1 vector<int>a;            // 默认初始化;
 2 vector<int>a(50);        // 数组a有50个为0的元素;
 3 vector<int>a(10,7);      // 10个为7的元素;
 4 vector<int>b(a);         // 用a定义b;
 5 
 6 struct Point {
 7     int x;
 8     int y;
 9 };
10 vector<Point>a;          // 结构体类型数组

主要函数:

 1 push_back();       // 在尾部添加元素;
 2 size();            // 元素个数;
 3 empty();           // 是否为空;
 4 insert();          // 插入;
 5 pop_back();        // 删除末尾元素;
 6 erase();           // 删除;
 7 clear();           // 清空;
 8 sort();            // 排序;
 9     sort(start, end, cmp)
10     // start 排序数组的起始地址;
11     // end 排序数组结束地址的下一位;
12     // cmp 排序的方法,默认为升序;

 

如果需要详细理解,完全是可以看上面链接的源代码,别人的文章也写得更好,可以详细琢磨,更好的体会vector;

贴一以前写过的:用结构和STL常用算法实现对学生成绩的排序和查找(vector)

 

list:list是双向循环链表,每一个元素都可以直接访问前面一个元素和后面一个元素。实际上list的使用和vector的使用方法差不多。list适用于插入和删除频繁,随机访问较少的情况,vector适用于插入和删除较少,随机访问多的情况。

关于list的举例我还是老实的做一个传送门算了:https://blog.csdn.net/xiaoquantouer/article/details/70339869

 

 

 

下次再写吧。

posted on 2020-07-04 15:16  夜_归_人  阅读(142)  评论(0编辑  收藏  举报