“ 无论我成了什么狗样,我都相信自己前头无量。”
有些事情从写下开始的时候,就没说过最后的结果会是如何。
今天是10月份的第一个工作日:加油!
数据结构呢其实是指
相互之前存在一种或多种特定关系的数据元素的集合,
而这些数据元素之间的关系被称为结构
典型的数据结构有:
(1)集合(2)线性结构(3)树形结构 (4)图状结构或网状结构
提到数据结构,
对于C++来说,STL(标准模板库)绝对是最实用最方便的,STL之所以强大,是因为STL封装了许多复杂的数据结构和算法,提供了大量流行常用的数据结构操作。比如像:vector封装了数组,list封装了链表,map和set封装了二叉树。
对于STL,其核心主要包括:容器(Containers)、算法(Algorithms)、迭代器(iterators)。
迭代器是STL的精髓,因为它提供了一种方法,可以按照顺序的访问某个容器所含的各个元素,但无需暴露该容器的内部结构。
常量迭代器:for (string::const_iterator it = str2.begin(); it != str2.end(); it++)
正向迭代器:for(string::iterator it = str.begin();it!=str.end();it++)
反向迭代器:for (vector<string>::reverse_iterator iter = v6.rbegin(); iter != v6.rend(); iter++)
容器则是存放数据的地方,常见的容器有序列式容器和关联式容器。序列式容器是指其中的元素不一定有序,但可以被排序,比如string、vector(数组)、list、queue、stack、heap、priority_queue;而关联式容器内部结构基本上是一个平衡二叉树,所谓关联,指每个元素都有一个键值和一个实值<key,value>,元素按照一定的规则存放。比如map、set.
算法是作用于容器。它们提供了执行各种操作的方式,包括对容器内容执行初始化、排序、搜索和转换等操作。
那来说一说STL中最基本最常用的类或者容器:
(string、vector(数组)、forward_list、list、queue、deque、priority_queue、stack、heap、map、set)
单向容器:forward_list、queue 双向容器:string、vector(数组)、list、deque