
c++
文章平均质量分 59
小金刚-码奴只知前进
追一个追不到的人,做一个做不完的梦。
展开
-
c++11的新特性简介
C++11的新特性 1. 指针、智能指针: nullptr: 出现原因:原来NULL因编译器不同可能是0,也可能是(void*),且( void *)不能隐式转化为其他类型的空指针,需要强转。 nullptr作用:其类型为nullptr_t ,其可以隐式转换为所有类型的空指针,解决NULL的指针问题。并且使很好的区分了空指针与0。 智能指针: unique_ptr: 不共享他的指针,该指针所指的内容无法被值传递,无法建立副本,只能移动unique_ptr。其内容所有者唯一。 weak_ptr:原创 2021-03-13 01:01:32 · 200 阅读 · 0 评论 -
C/C++内存模型及动态内存管理
C/C++内存模型: 内存模型有五个区,由高地址到低地址依次: 栈——堆——全局/静态存储区——常量存储区——自由存储区 栈: 1.栈的存储是连续的且被一一记录的。 2.内存由编译器在需要时自动分配和释放。 3.通常存储为局部变量和函数参数。 4.栈运算分配内置于处理器指令集中,效率很高,但内存有限。 5.函数体执行结束时这些内存被自动释放。 堆: 1.堆内申请的东西是随机分配的。 2.使用malloc进行分配,free释放。如果没有对内存进行正确的释放,会造成内存泄漏,进而原创 2021-03-11 23:30:29 · 637 阅读 · 0 评论 -
vector底层结构简介
vector vector简介: vector实际上是一个泛型动态类型顺序表,底层数据存储在一段连续的空间上。 vector优缺: 优:由于其顺序结构,它支持随机访问,读取更改效率很高。 缺:顺序结构随机插入删除时,需要挪动他元素,元素越多效率越低。 ( 还会使迭代器失效) vector底层结构: 一个顺序表。 vector迭代器: 容器中内置迭代都在 [ begin() , end() ) 区间内。 vector扩容: 当数据量达到容器边缘时(end() == 边界),容器会自原创 2021-03-11 18:35:17 · 3656 阅读 · 0 评论 -
list使用及底层结构刨析
list list简介 list是一个双向循环链表,他的插入删除操作用时间是常数级别(O(1)),对空间上的运用精准,不浪费一点空间, list 简单函数使用: 初始化: list<Type> a; //定义一个Type类型的链表a list<Type> a(10); //定义一个Type类型的链表a,并设置初始大小为10 l原创 2021-03-10 23:42:55 · 1019 阅读 · 0 评论