STL_deque
概述 vector是单向开口的连续线性空间,而deque则是一种双向开口的连续线性空间。 所谓双向开口,是指可以在头尾两端分别做元素的插入和删除操作。 区别 和vector相比: deque运行常数时间内对起头端进行元素的插入和移除操作 deque没有所谓的容量的概念,因为他是动...
概述 vector是单向开口的连续线性空间,而deque则是一种双向开口的连续线性空间。 所谓双向开口,是指可以在头尾两端分别做元素的插入和删除操作。 区别 和vector相比: deque运行常数时间内对起头端进行元素的插入和移除操作 deque没有所谓的容量的概念,因为他是动...
概述 如果我们在线程间共享数据,我们需要设置规则,哪个线程可以访问数据的哪一位,什么时间以及如何将更改传达给关心数据的其他线程。 关键点 问题 从整体上来看,所以线程之间共享数据的问题,都是修改数据导致的。如果所有的共享数据都只读的,就没有问题,因为一个线程所读取的数据不受另一个...
介绍 每个C++进程都拥有至少一个线程,它是由C++在运行时启动的。该线程运行着main()函数。 我们自己的程序可以继续启动具有其他函数作为入口的线程。然后,这些线程连同初始线程一起,并发运行。 正如程序会在main()函数返回时退出那样,当指定的入口函数返回时,该线程就会退出...
什么是并发 概念 在最简单,最基本的层面,并发是指两个或更多的独立活动同时发生。 计算机的并发 指的是在单个系统里,同时执行多个独立的活动,而不是顺序地或是一个接一个地。 两种并发 任务切换 以前,大多数计算机都只有一个处理器,具有单个处理单元或核心,至今有很多机器仍是这样。 对...
节点 迭代器 list迭代器必须有能力指向list的节点,并有能力进行正确的递增、递减、取值、成员存取等操作。 重要性质: 插入(insert)和结合(splice)都不会造成原有的list迭代器失效。 数据结构 SGI list不仅是一个双向链表,而且是一个环状双向链表。 示意...
区别 array是静态空间,一旦配置了就不能改变。 vector是动态空间,随着元素的加入,它的内部机制会自行扩充空间以容纳新元素。 摘要 迭代器 vector维护的是一个连续线性空间,所以不论其元素型别为何,普通指针都可以作为vector的迭代器而满足所有必要条件 因为vect...
简述 STL定义有5个全局函数,作用于未初始化空间上。 construct destory uninitialized_copy 该函数能使我们将内存的配置与对象的构造行为分离开来 针对输入范围[first,last)内的每一个迭代器i 该函数会调用construct(&...
6大组件 容器 vector list deque set map 从实现的角度,STL容器是class template 算法 sort search copy ... 从实现的角度,STL算法是function template 迭代器 容器与算法之间的“胶合剂” 所谓的“泛...
运算符 算术运算符 + - * / % ++ -- 关系运算符 == != > < >= <= 逻辑运算符 && || ! 位运算符 & 有0得0 | 有1得1 ^ 相同为0 << >> 赋值运算符 += -= *= /= %...
基础的数据类型 数据类型 用于声明函数和变量 布尔型 数字类型 整形 int 浮点型 float 复数 complex 字符串类型 由单个字节连接起来的 go语言的字符串的字节使用UTF-8编码标识Unicode文本 派生类型 指针类型 数组类型 结构化类型 Channel类型 ...