
C/C++
文章平均质量分 86
AngeloG
这个作者很懒,什么都没留下…
展开
-
【C++ STL】5.set/map
STL中提供的关联式容器,set和map(multiset和multimap),包括在C++ 11中新增的无序关联容器unordered_map、unordered_multimap、unordered_set 以及 unordered_multiset。一、关联式容器1.关联式容器在存储元素值的同时,还会为各元素额外再配备一个值(又称为“键”,其本质也是一个 C++ 基础数据类型或自定义类型的元素),它的功能是在使用关联式容器的过程中,如果已知目标元素的键的值,则直接通过该键就可以找到目标元素,而无需原创 2021-04-28 19:56:02 · 133 阅读 · 0 评论 -
【C++ STL】4.stack/queue
STL中栈和队列:stack和queue一、容器适配器简单的理解容器适配器,其就是将不适用的序列式容器(包括 vector、deque 和 list)变得适用。通过封装某个序列式容器,并重新组合该容器中包含的成员函数,使其满足某些特定场景的需要。容器适配器本质上还是容器,只不过此容器模板类的实现,利用了大量其它基础容器模板类中已经写好的成员函数。当然,如果必要的话,容器适配器中也可以自创新的成员函数。STL 提供了 3 种容器适配器,分别为 stack 栈适配器、queue 队列适配器以及 prior原创 2021-04-26 17:38:16 · 214 阅读 · 0 评论 -
【C++ STL】3.list
一、list基本概念list是STL中链表数据结构的类型,在物理结构上非连续,通过指针进行链接。STL中的链表是双向循环链表,末尾节点后向指针指向初始节点,初始节点前向指向末尾节点。list迭代器只支持双向迭代器,即只能++或者–与vector相比:优点:充分利用内存,插入删除方便,不需要移动大量元素。缺点:占用空间比较大,遍历时时间消耗比较多。二、list构造1)list<T> lst;默认无参list<int>L;2) list(beg,end);将[beg,原创 2021-04-26 17:13:09 · 215 阅读 · 0 评论 -
【C++ STL】2.vector/deque
STL中类似数组的两个容器vector和deque一、vector1.基本概念vector与数组相仿,也成为单端数组,相比普通数组的静态空间,vector可以动态扩展,这种动态扩展并不是在原空间之后续接新空间,而是找更大的内存空间,然后将原数据拷贝新空间,释放原空间。在vector中有容量的概念,容量一般大于vector当前的大小。vector在尾部插入或删除元素,在常量时间内就可以完成,时间复杂度为O(1);而对于在容器头部或者中部插入或删除元素,则花费时间要长一些(移动元素需要耗费时间),时间复原创 2021-04-26 16:38:51 · 336 阅读 · 0 评论 -
【C++ STL】1.string/sstream
C++中关于字符串的操作,不是STL提供,但构造方式、函数比较相似。一、string基本概念string是C++中字符串的类型,本质上是一个类,在C中字符串常用char *,是一个指针变量,string的内部也是通过char *实现的,相较于char *,string可以管理所分配的内存,不会出现复制越界和取值越界等情况。二、string构造函数string类型变量有四种构造方式:1)string();创建空字符串string s;2)string(const char* s);使用字符串初原创 2021-04-26 15:36:18 · 295 阅读 · 0 评论 -
【C++ STL】0.STL标准模板库
一、STL是什么?STL,英文全称 standard template library,中文可译为标准模板库或者泛型库,其包含有大量的模板类和模板函数,是 C++ 提供的一个基础模板的集合,用于完成诸如输入/输出、数学计算等功能。二、STL组成1.主要的六个组件容器、算法、迭代器、仿函数(函数对象)、适配器、内存分配器,比较常用的就是前4部分。2.各组件容器:一些封装数据结构的模板类,如vector、list、deque等等。算法:STL 提供了非常多(大约 100 个)的数据结构算法,它原创 2021-04-26 14:42:09 · 165 阅读 · 0 评论 -
【C/C++】C语言中关于结构体的内存空间、数组、指针变量参数等
关于这几个问题论坛上已经有比较详细的文章,这里主要描述一些遇到的问题,并附上链接。一、结构体内存对齐例如采用数组的形式顺序存储线性表时,以下两种表示都可以:typedef struct LNode *List;struct LNode{ ElementType Data[MAXSIZE]; int Last;};typedef struct LNode *List;struct LNode{ ElementType *Data; int last;原创 2020-10-21 18:07:51 · 586 阅读 · 0 评论