摘要: 现代C++为了解决内存泄露以及资源回收等问题,引入了智能指针的概念。在日常的C++实践中也是高频使用。 本文是在实践过程中,对现代C++中的智能指针进行的一个稍微全面的总结。 概念及使用 std::shared_ptr也即智能指针,采用RAII手法,是一个模版对象。std::shared_ptr表示 阅读全文
posted @ 2022-10-27 21:23 Happinesspill 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 参数传递共有三种方式,即值传递、指针传递、引用传递。 值传递 值传递就是在调用函数的时候将实参的值拷贝后赋值给形参,形参改变不会改变实参,各自有各自的空间。且形参为局部变量,函数运行完后会被操作系统释放掉。 #include <iostream> using std::cout; using std 阅读全文
posted @ 2022-10-15 20:27 Happinesspill 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 共享内存 消息队列的读取和写入过程,都会有发生用户态和内核态之间的消息拷贝过程,共享内存就解决了这个问题。对于内存管理,现代操作系统采用虚拟内存技术,每个进程都有个自己独立的虚拟内存空间,不同进程的虚拟内存映射到不同的物理内存中,所以即使进程A和进程B的虚拟地址是一样的,但是访问的是不同的物理地址, 阅读全文
posted @ 2022-10-13 15:15 Happinesspill 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 1.1 并发、进程、线程的基本概念 1.1.1并发 两个或多个任务(独立的活动)同时发生:一个程序同时执行多个独立的任务。 单核CPU由操作系统调度,单时间片内只运行一个程序,进行任务切换,实现同时运行多个任务的假象,切换上下文有时间开销,切换回来要复原。 多核心CPU能够真正的实现并行执行任务(硬 阅读全文
posted @ 2022-10-12 15:28 Happinesspill 阅读(326) 评论(0) 推荐(0) 编辑
摘要: map是常用的STL容器,但是map容器跟别的容器不太一样,每次使用map容器时,对于map的插入方式总是遗忘,特此记录 定义一个map关联式容器 map<int, string> map; 第一种 C++11新标准,使用花括号直接初始化,直接向map中插入元素, map.insert({1, 'z 阅读全文
posted @ 2022-09-08 19:46 Happinesspill 阅读(389) 评论(0) 推荐(0) 编辑
摘要: 定义与区别 左值 (lvalue, locator value) 表示了一个占据内存中某个可识别的位置(也就是一个地址)的对象。即左值指的是可以取地址的变量。 区分表达式的左右值属性有一个简便方法:若可对表达式用 & 符取址,则为左值,否则为右值。 左值与右值的根本区别在于能否获取内存地址,而能否赋 阅读全文
posted @ 2022-08-29 21:03 Happinesspill 阅读(113) 评论(0) 推荐(0) 编辑
摘要: new和malloc的内存分配在哪 分配在堆上。 也有说new是分配在自由存储区而malloc分配在堆上,自由存储区可以是堆也可以不是,具体要看new内部的实现。 操作系统在堆上维护一个空闲内存链表,当需要分配内存的时候,就查找这个表,找到一块内存大于所需内存的区域,分配内存并将剩余的内存空间返还到 阅读全文
posted @ 2022-08-26 21:14 Happinesspill 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 《C++ primer》中有一句 因为引用本身不是对象,所以不能定义引用的引用。 int i = 1024; int &a = i; int &b = a; 容易引起误解,语句int &b = a;并没有语法错误。 可以这么理解: int &a 给i起了一个别名a; int &b 给i起了另一个别名 阅读全文
posted @ 2022-08-23 19:51 Happinesspill 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 引用 C++11中新增了“右值引用”,主要用于内置类,当我们使用术语“引用”时,指的是“左值引用”。 引用(reference)为对象起另一个名字,即别名。 引用不是对象,只是已经存在对象的另一个名字。定义一个引用时,必须将引用与它的初始值绑定在一起,且一直绑定在一起,无法令引用重新绑定到另外一个对 阅读全文
posted @ 2022-08-23 19:43 Happinesspill 阅读(33) 评论(0) 推荐(0) 编辑
摘要: const对象必须初始化,因为const对象一旦创建后其值就不能改变。 默认情况下,const对象仅在文件内有效 在一个文件中定义const,在多个文件中声明并使用,解决办法:对于const变量不管是声明还是定义都添加extern关键字。 把引用绑定到const对象上称为对常量的引用(referen 阅读全文
posted @ 2022-08-23 19:31 Happinesspill 阅读(25) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示