随笔分类 -  C++

摘要:#include #include #include /* templatestruct::type aligned_storage; 相当于一个内建的POD类型他的大小是Size他的对齐方式是Align */ template class static_vector { typename std::aligned_storage::type data[N]; std:... 阅读全文
posted @ 2017-06-16 16:18 瓜蛋 阅读(2253) 评论(0) 推荐(0) 编辑
摘要:// Bind_std_function.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include #include #include //学习bind的用法 void f(int n1, int n2, int n3, const int & n4, int n5) { std::cout d(0, 10);... 阅读全文
posted @ 2017-06-13 09:55 瓜蛋 阅读(18903) 评论(0) 推荐(0) 编辑
摘要:好多人喜欢把工具函数做成static member function。这样以增加隐蔽性和封装性,由其是从C#,java转而使用c++的开发人员。 例如: 这在里应该使用namespace而不是class,原因如下: 1.在《Effective c++》这本书条款23中提到:宁以non-member、 阅读全文
posted @ 2017-06-12 14:22 瓜蛋 阅读(2927) 评论(0) 推荐(0) 编辑
摘要:要文转自:http://www.cnblogs.com/ymy124/p/3632634.html 首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数 阅读全文
posted @ 2017-05-22 23:19 瓜蛋 阅读(247) 评论(0) 推荐(0) 编辑
摘要:有时候你会发现,一个项目,第一次写经常是是按函数式编程 ,写的功能越多,确发现,代码重复太多,某一个东西应该提取出来写成一个工具类。但是为什么前期没能构思出这个类呢? 如何从一个庞大的功能里分离出一些对象,这些对象有较强的内处理,不毕让外界知道,他只提供给外界一个主要的功能,而不是与主功能混为一谈。 阅读全文
posted @ 2017-05-14 17:49 瓜蛋 阅读(370) 评论(0) 推荐(0) 编辑
摘要:可以实现多客户端对一服务端,服务端为客户端提供服务。 其实一服务端对应每一个client pipe都新建立了一个pipe。windows允许建立多个同名pipe 效果: 服务端代码: 客户端代码 阅读全文
posted @ 2017-03-22 00:50 瓜蛋 阅读(4458) 评论(0) 推荐(0) 编辑
摘要:出现异常主要表现 导致异常的关键代码不是因为printf 或cout,而是因为使用栈空间超出的原因 下图试图在栈上分配1024000个char的空间,确发现崩溃 的位置是printf,这就是这个问题难找的原因。 阅读全文
posted @ 2017-02-24 11:25 瓜蛋 阅读(951) 评论(0) 推荐(0) 编辑
摘要:#define print_vector(v1) \ for(auto iter = v1.begin();iter != v1.end();iter++) \ cout v1(3,10); std::vector v2(4,9); //std::copy(v1.begin(),v1.end(),v2.begin());//把v1 copy到v2。v1的... 阅读全文
posted @ 2017-02-23 10:06 瓜蛋 阅读(2181) 评论(0) 推荐(0) 编辑
摘要:经常遇到块加密算法,必须固定位进行加密,所以有必须进行补充 如果是16位一般按照下面的原则 原则:必须补,并且最后一个字节为补的字节数 补的个数为 16 - Len % 16 规则:最后位为后补的个数即 16 - Len % 16 阅读全文
posted @ 2017-02-22 15:29 瓜蛋 阅读(403) 评论(0) 推荐(0) 编辑
摘要:这个选项为false时,当连接断开时,第一次调用服务会抛出异常,而第二次调用时,也会自动连接。 阅读全文
posted @ 2017-02-06 10:07 瓜蛋 阅读(367) 评论(0) 推荐(0) 编辑
摘要:不想深究,只是可以编译出想要的lib文件 1.打开visual studio 2012 命令提示 2.进入 boost目录 3.运行booststrp.bat得到b2.exe、bjam.exe、project-config.jam文件 4.运行命令 多线程调试 DLL (/MDd) bjam sta 阅读全文
posted @ 2017-02-05 19:10 瓜蛋 阅读(310) 评论(0) 推荐(0) 编辑
摘要:http://www.komodia.com/ 阅读全文
posted @ 2016-09-30 22:29 瓜蛋 阅读(952) 评论(0) 推荐(0) 编辑
摘要:1.点击vs2012菜单栏 工具-> Visual Studio 命令提示 打开命令窗口 2.输入命令 "devenv /Setup" 3.重新打开vs2012 阅读全文
posted @ 2016-09-06 18:13 瓜蛋 阅读(4874) 评论(0) 推荐(0) 编辑
摘要:带e是指10的 e后面次方 输出: 阅读全文
posted @ 2016-06-26 02:32 瓜蛋 阅读(4308) 评论(0) 推荐(0) 编辑
摘要:今天有一个工程Debug是正常,Release崩溃,郁闷至极。 研究了一下下午,原因是一个类成员变量没有构造函数中初始化。而Debug版本正好没有问题。 所以定义类成员,一定不能忘记初始化!! 阅读全文
posted @ 2016-06-15 22:58 瓜蛋 阅读(2544) 评论(0) 推荐(0) 编辑
摘要:比如有两个项目A、B,他们功能着不多一样,但中间有着不同的实现方法。是保存一份代码,还是两份代码呢? 保持一份代码: 优点: 1.优化一片代码,相当于两个项目都优化了。 2.集中管理 3.节省空间。避免复制。 缺点: 1.当某处代码不相同时,要么用 if else; 要么创建虚基类new不同对象。这使的代码比较庞大而杂乱、效率也不好 2.写B项目代码的时候,容易影响到A项目... 阅读全文
posted @ 2016-05-04 00:16 瓜蛋 阅读(557) 评论(0) 推荐(0) 编辑
摘要:介绍 一个c++ socket 客户端库 http://www.rudeserver.com/socket/index.html The RudeSocket™ Open Source C++ Socket Library provides a simple to use interface for 阅读全文
posted @ 2016-03-04 03:51 瓜蛋 阅读(3664) 评论(1) 推荐(0) 编辑
摘要:#include "stdafx.h" #include using namespace std; int _tmain(int argc, _TCHAR* argv[]) { //建立一个16行5列的数组 int **p = new int*[16];//分配堆内存16个 int* for(int i = 0;i < 16;i++)//分配堆内存给每一个int*... 阅读全文
posted @ 2016-02-13 22:27 瓜蛋 阅读(2148) 评论(0) 推荐(1) 编辑
摘要:由于程序写好,总会有bug,这些bug很大程序上来自于编写的方法和习惯有关。 本文会长期追加,我自己发现一条就会记一条。 1.是数值就要用数值型变量,不要用字符串,不要以为读文件读来的是字符串,以后就用字符串变量保存 2.检测子字符串是否存在。stl string.find("aaaa") != s 阅读全文
posted @ 2016-01-03 11:46 瓜蛋 阅读(531) 评论(0) 推荐(0) 编辑
摘要:有时候经常会判断一个字符串a中是否有子字符串b,那么有人会调用 string::find这个函数 这个函数返回子字符串首次出现的位置,那么有人会这样写 string str1 = ""; if(str1.find("aaaa") >= 0) cout= 0 在任何时刻都成立... 阅读全文
posted @ 2015-12-23 13:37 瓜蛋 阅读(2418) 评论(0) 推荐(0) 编辑