随笔分类 -  C/C++

摘要:http://www.hahack.com/codes/cmake/ 阅读全文
posted @ 2018-08-22 17:27 小念之歌 阅读(317) 评论(0) 推荐(0)
摘要:Thread线程框架 线程定义:线程可以理解为一个特立独行的函数。其存在的意义,就是并行,避免了主线程的阻塞。 thread与函数 线程启动 C++线程的启动, 只需要#include <thread>即可。 线程对象的创建, 意味着线程的开始。 1)同步 t.join 和 t.detach 标志着 阅读全文
posted @ 2018-07-29 16:40 小念之歌 阅读(2664) 评论(0) 推荐(0)
摘要:一个unique_ptr"拥有“他所指向的对象。与shared_ptr不同,某个时刻只能有一个unique_ptr指向一个给定的对象。当unique_ptr被销毁时,它所指向的对象也被销毁。uniptr_ptr表达的是一种独占的思想。 初始化 unique_ptr一般操作 关于unique_ptr还 阅读全文
posted @ 2018-07-28 22:11 小念之歌 阅读(22420) 评论(0) 推荐(1)
摘要:shared_ptr 引子 c++中动态内存的管理是通过new和delete来完成的,只要保证new和delete的配对使用,是没有问题的。但是有时候我们会忘记释放内存,甚至有时候我们根本就不知道什么时候释放内存。特别时在多个线程间共享数据时,更难判断内存该何使释放。这种情况下就机器容易产生引用非法 阅读全文
posted @ 2018-07-24 19:50 小念之歌 阅读(62924) 评论(1) 推荐(11)
摘要:语义: 类模板std::function是可调用对象的包装器,可以包装除了类成员之外的所有可调用对象。包括,普通函数,函数指针,lambda,仿函数。通过指定的模板参数,它可以用统一的方式保存,并延迟执行它们。所谓的延迟执行,就是回调了。 它使得C++对C的兼容性更强了。 常规多态案例: 多态转st 阅读全文
posted @ 2018-07-20 16:01 小念之歌 阅读(699) 评论(0) 推荐(1)
摘要:C++ using用法总结 1)配合命名空间,对命名空间权限进行管理 using namespace std;//释放整个命名空间到当前作用域 using std::cout; //释放某个变量到当前作用域 2)类型重命名 作用等同typedef,但是逻辑上更直观。 #include <iostre 阅读全文
posted @ 2018-07-20 09:50 小念之歌 阅读(30274) 评论(1) 推荐(10)
摘要:右值引用 右值定义: 通俗来讲,赋值号左边的就是左值,赋值号右边的就是右值。可以取地址是左值,不可以取地址的是右值。C++11,之前没有明确提出右值的概念,所以 C++11 以前这些说活都是正确的。 C++11 中的左值,仍然等同于 C++98 左值。C++11 中的右值,除了 C++98 中的右值 阅读全文
posted @ 2018-07-15 13:23 小念之歌 阅读(544) 评论(0) 推荐(0)
摘要:assert assert 是运行期断言,它用来发现运行期间的错误,不能提前到编译期发现错误,也不具有强制性,也谈不上改善编译信息的可读性,既然是运行期检查,对性能当然是有影响的,所以经常在发行版本中,assert 都会被关掉。assert 的关键在于判断 expression 的逻辑真假,如果为 阅读全文
posted @ 2018-07-11 23:04 小念之歌 阅读(325) 评论(0) 推荐(0)
摘要:什么是Lanmbda? 简短函数,就地书写。常用于向函数(算法)传递函数参数。 语法 Lambda 表达式,[capture](paras)mutable->return type{statement} 全部语法格式,分如下章节介绍: [capture]: 捕获列表。捕获列表,总是出现在 lambd 阅读全文
posted @ 2018-07-10 22:53 小念之歌 阅读(747) 评论(0) 推荐(0)
摘要:新的字符串表示方式——原生字符串(Raw String Literals) C/C++中提供了字符串,字符串的转义序列,给输出带来了很多不变,如果需要原生义的时候,需要反转义,比较麻烦。 C++提供了,原生字符串,即字符串中无转义,亦无需再反义。详细规则见带码: 新的for循环——for(x:ran 阅读全文
posted @ 2018-07-09 19:42 小念之歌 阅读(8690) 评论(0) 推荐(0)
摘要:定义: 官网: http://json.org/ 在线解析器:http://json.cn/ http://www.bejson.com/ JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。 阅读全文
posted @ 2018-07-08 13:06 小念之歌 阅读(1036) 评论(0) 推荐(1)
摘要:泛型语义 泛型(Generic Programming),即是指具有在多种数据类型上皆可操作的含意。泛型编程的代表作品 STL 是一种高效、泛型、可交互操作的软件组件。 泛型编程最初诞生于 C++中,目的是为了实现 C++的 STL(标准模板库)。其语言支持机制就是模板(Templates)。 模板 阅读全文
posted @ 2018-06-29 08:49 小念之歌 阅读(2170) 评论(0) 推荐(0)
摘要:泛型语义 泛型(Generic Programming),即是指具有在多种数据类型上皆可操作的含意。泛型编程的代表作品 STL 是一种高效、泛型、可交互操作的软件组件。 泛型编程最初诞生于 C++中,目的是为了实现 C++的 STL(标准模板库)。其语言支持机制就是模板(Templates)。 模板 阅读全文
posted @ 2018-06-28 20:48 小念之歌 阅读(413) 评论(0) 推荐(0)
摘要:内存检测Valgrind简介 Valgrind是运行在Linux上一套基于仿真技术的程序调试和分析工具,作者是获得过Google-O'Reilly开源大奖的Julian Seward, 它包含一个内核──一个软件合成的CPU,和一系列的小工具,每个工具都可以完成一项任务──调试,分析,或测试等,内存 阅读全文
posted @ 2018-06-25 22:32 小念之歌 阅读(490) 评论(0) 推荐(0)
摘要:函数的本质 函数的本质是一段可执行性代码段。函数名,则是指向这段代码段的首地址。 1)上述代码中函数void print()和void dis()他们都有一个公共的类型就是void (*)(void); 2)使用void (*)(void)类型定义了一个变量名为p的函数指针,并且对其赋值; 更简洁的 阅读全文
posted @ 2018-06-17 22:50 小念之歌 阅读(5768) 评论(0) 推荐(0)