随笔分类 -  C++

摘要:https://www.cnblogs.com/lizhanwu/p/4428990.html https://www.cnblogs.com/leijiangtao/p/12059006.html https://blog.csdn.net/qq_22660775/article/details/ 阅读全文
posted @ 2020-08-19 05:31 CTHON 阅读(276) 评论(0) 推荐(0) 编辑
摘要:往软件系统中添加组件就是严重增加复杂性的一种做法。我们来拿消息队列举个例子。 消息队列是一个能让你获得容错性,分布式,解耦等架构能力的系统。纸上谈兵的话,它看起来还不错。 或许消息列队在你的应用中有不少适用的场景。你可以看下这篇关于消息队列优点的文章,看看到底有哪些合适的场景。但可不要因为说"能解耦 阅读全文
posted @ 2019-03-21 17:01 CTHON 阅读(520) 评论(0) 推荐(0) 编辑
摘要:讲到高性能IO绕不开Reactor模式,它是大多数IO相关组件如Netty、Redis在使用的IO模式,为什么需要这种模式,它是如何设计来解决高性能并发的呢? 最最原始的网络编程思路就是服务器用一个while循环,不断监听端口是否有新的套接字连接,如果有,那么就调用一个处理函数处理,类似:while 阅读全文
posted @ 2019-03-20 16:07 CTHON 阅读(478) 评论(0) 推荐(0) 编辑
摘要:概述 需求 系统的物理内存是有限的,而对内存的需求是变化的, 程序的动态性越强,内存管理就越重要,选择合适的内存管理算法会带来明显的性能提升。比如nginx, 它在每个连接accept后会malloc一块内存,作为整个连接生命周期内的内存池。 当HTTP请求到达的时候,又会malloc一块当前请求阶 阅读全文
posted @ 2019-03-20 11:42 CTHON 阅读(9141) 评论(1) 推荐(3) 编辑
摘要:#include <iostream> #include <string> #include <locale> #include <codecvt> #include <fstream> int main(int argc, char *argv[]) { std::wstring str = L" 阅读全文
posted @ 2018-07-20 12:19 CTHON 阅读(12302) 评论(0) 推荐(0) 编辑
摘要:1. Trie树介绍 Trie,又称单词查找树、前缀树,是一种多叉树结构。如下图所示: 上图是一棵Trie树,表示了关键字集合{“a”, “to”, “tea”, “ted”, “ten”, “i”, “in”, “inn”} 。 与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定 阅读全文
posted @ 2018-07-11 10:43 CTHON 阅读(826) 评论(0) 推荐(1) 编辑
摘要:#include #include #include using namespace std; //相对路径转绝对路径,vector实现 //输入路径:/home/abs/../temp/new/../ ,输出路径为:/home/temp vector pathChange(string input){ vector inputpath,outputpath; string tmp... 阅读全文
posted @ 2018-07-10 21:25 CTHON 阅读(3914) 评论(0) 推荐(1) 编辑
摘要:1. 对于序列式容器(如vector,deque),序列式容器就是数组式容器,删除当前的iterator会使后面所有元素的iterator都失效。这是因为vetor,deque使用了连续分配的内存,删除一个元素导致后面所有的元素会向前移动一个位置。所以不能使用erase(iter++)的方式,还好e 阅读全文
posted @ 2018-07-08 21:59 CTHON 阅读(294) 评论(0) 推荐(0) 编辑
摘要:noncopyable.h thread.h thread.cc testThread.cc 阅读全文
posted @ 2018-07-04 21:43 CTHON 阅读(4179) 评论(0) 推荐(0) 编辑
摘要:#include #include using std::cout; using std::endl; using std::allocator; template class Vector { public: typedef T* iterator; typedef const T * const_iterator; Vector() : _start(0) , _f... 阅读全文
posted @ 2018-07-04 11:14 CTHON 阅读(224) 评论(0) 推荐(0) 编辑
摘要:准备工作 1、VS2012使用命令行选项查看对象的内存布局 微软的Visual Studio提供给用户显示C++对象在内存中的布局的选项:/d1reportSingleClassLayout。使用方法很简单,直接在[项目P]选项下找到“visual属性”后点击即可。切换到cpp文件所在目录下输入如下 阅读全文
posted @ 2018-07-01 15:15 CTHON 阅读(8294) 评论(0) 推荐(0) 编辑
摘要:什么是左值、右值 最常见的误解: 等号左边的就是左值,等号右边的就是右值 左值和右值都是针对表达式而言的, 左值是指表达式结束后依然存在的持久对象 右值是指表达式结束时就不再存在的临时对象区分: 能对表达式进行取地址,则为左值 ;否则为右值 为什么引入右值引用?std::vector<String> 阅读全文
posted @ 2018-06-25 23:06 CTHON 阅读(545) 评论(0) 推荐(0) 编辑
摘要:一、Remove()函数 remove只是通过迭代器的指针向前移动来删除,将没有被删除的元素放在链表的前面,并返回一个指向新的超尾值的迭代器。由于remove()函数不是成员,因此不能调整链表的长度。remove()函数并不是真正的删除,要想真正删除元素则可以使用erase()或者resize()函 阅读全文
posted @ 2018-06-25 13:36 CTHON 阅读(6939) 评论(0) 推荐(0) 编辑
摘要:转自:http://www.cnblogs.com/xusd-null/p/3698969.html#3081606 本文解释了bind 是如何工作的。为了清晰,图中的语法作了一些简化(例如,省略函数调用操作符的参数类型),并且简化了 bind 的实现. 1. bind 可以用来将用户提供的需要一个 阅读全文
posted @ 2018-06-24 23:51 CTHON 阅读(822) 评论(1) 推荐(0) 编辑
摘要:pclint(收费) http://www.gimpel.com/html/pcl.htmpc-lint是资格最老,最强力的代码检查工具,但是是收费软件,并且配置起来有一点点麻烦。 ccpchecker http://cppcheck.net/ CppCheck 是免费的开源软件。使用起来也很方便。 阅读全文
posted @ 2018-06-21 17:03 CTHON 阅读(1392) 评论(0) 推荐(0) 编辑
摘要:std::pair主要的作用是将两个数据组合成一个数据,两个数据可以是同一类型或者不同类型。 例如std::pair<int,float> 或者 std::pair<double,double>等。 pair实质上是一个结构体,其主要的两个成员变量是first和second,这两个变量可以直接使用。 阅读全文
posted @ 2018-06-21 16:57 CTHON 阅读(2708) 评论(0) 推荐(0) 编辑
摘要:为什么需要类型萃取(特化) 前面我们提到了迭代器,它是一个行为类似于smart pointer之类的东西,主要用于对STL容器中的对象进行访问,而且不暴露容器中的内部结构,而迭代器所指对象的型别称为该迭代器的value type;如果在实际的工程当中我们应该怎么获取STL容器中对象的value ty 阅读全文
posted @ 2018-06-20 21:51 CTHON 阅读(1937) 评论(0) 推荐(0) 编辑
摘要:迭代器是一种检查容器内元素并遍历元素的数据类型。可以替代下标访问vector对象的元素。 每种容器类型都定义了自己的迭代器类型,如 vector: vector<int>::iterator iter; 这符语句定义了一个名为 iter 的变量,它的数据类型是 vector<int> 定义的 ite 阅读全文
posted @ 2018-06-20 21:47 CTHON 阅读(977) 评论(0) 推荐(0) 编辑
摘要:可变模板参数 C++11新特性 可变模板参数(variadic templates)是C++11新增的最强大的特性之一,它对参数进行了高度泛化,它能表示0到任意个数、任意类型的参数 由于可变模版参数比较抽象,使用起来需要一定的技巧,所以它也是C++11中最难理解和掌握的特性之一 参数包(parame 阅读全文
posted @ 2018-06-20 16:42 CTHON 阅读(2649) 评论(0) 推荐(0) 编辑
摘要:模板的实例化指函数模板(类模板)生成模板函数(模板类)的过程。对于函数模板而言,模板实例化之后,会生成一个真正的函数。而类模板经过实例化之后,只是完成了类的定义,模板类的成员函数需要到调用时才会被初始化。模板的实例化分为隐式实例化和显示实例化。 对函数模板的使用而言,分为两种调用方式,一种是显示模板 阅读全文
posted @ 2018-06-20 14:49 CTHON 阅读(7775) 评论(0) 推荐(5) 编辑