摘要:
1、vector (1)定义 vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。 vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。 (2) 阅读全文
摘要:
1、List (1)定义 List是一种序列式容器。List容器完成的功能实际上和数据结构中的双向链表是极其相似的,List中的数据元素是通过链表指针串连成逻辑意义上的线性表,也就是List也具有链表的主要优点,即:在链表的任一位置进行元素的插入、删除操作都是快速的。 (2)底层实现 List的实现 阅读全文
摘要:
1、Deque (1)定义 deque容器是C++标准模版库(STL,Standard Template Library)中的部分内容。deque容器类与vector类似,支持随机访问和快速插入删除,它在容器中某一位置上的操作所花费的是线性时间。与vector不同的是,deque还支持从开始端插入数 阅读全文
摘要:
1、序列容器 (1)vector vector和built-in数组类似,拥有一段连续的内存空间,能非常好的支持随即存取,即[]操作符,但由于它的内存空间是连续的,所以在中间进行插入和删除会造成内存块的拷贝。 另外,当插入较多的元素后,预留内存空间可能不够,需要重新申请一块足够大的内存并把原来的数据 阅读全文
摘要:
1、Stack (1)定义 栈是一种容器适配器,特别为后入先出而设计的一种(LIFO ),那种数据被插入,然后再容器末端取出。 默认情况下,如果没有容器类被指定成为一个提别的stack 类,标准的容器类模板就是deque 队列。 堆栈是一个线性表,插入和删除只在表的一端进行。这一端称为栈顶(Stac 阅读全文
摘要:
1、Queue (1)定义 queue单向队列与栈有点类似,一个是在同一端存取数据,另一个是在一端存入数据,另一端取出数据。单向队列中的数据是先进先出(First In First Out,FIFO)。 在STL中,单向队列也是以别的容器作为底部结构,再将接口改变,使之符合单向队列的特性就可以了。因 阅读全文
摘要:
1、Set (1)定义 set/multiset会根据待定的排序准则,自动将元素排序。两者不同在于前者不允许元素重复,而后者允许。 set,顾名思义是“集合”的意思,用来存储同一数据类型的数据类型。 在set中元素都是唯一的,而且默认情况下会对元素自动进行升序排列,支持集合的交(set_inters 阅读全文
摘要:
1、分类 我们常用到的STL容器有vector、list、deque、map、multimap、set和multiset,它们究竟有何区别,各自的优缺点是什么,为了更好的扬长避短,提高程序性能,在使用之前需要我们了解清楚。 2、Verctor 优点: 典型的序列容器,C++标准严格要求次容器的实现内 阅读全文
摘要:
1、Map (1)定义 Map是标准关联式容器(associative container)之一,一个map是一个键值对序列,即(key ,value)对。它提供基于key的快速检索能力,在一个map中key值是唯一的。map提供双向迭代器,即有从前往后的(iterator),也有从后往前的(rev 阅读全文
摘要:
1、定义 所谓死锁<DeadLock>: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象。若无外力作用,它们都将无法推进下去,此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。 当一个进程想要申请资源A,拥有资源B,而另一个进程想申请资源B,但 阅读全文