c/c++
huasonl88
这个作者很懒,什么都没留下…
展开
-
浅析epoll – epoll函数深入讲解
原文链接:https://www.cppfans.org/1418.html 前一篇大致讲了一下epoll是个什么东西,优点等内容,这篇延续上一篇的内容,主要是分析epoll的函数,epoll高性能的深入分析。epoll的三大函数1.创建epoll fd函数 1 int epoll_create(int size); epol...转载 2018-07-26 19:55:08 · 1007 阅读 · 1 评论 -
Boost智能指针——shared_ptr
原文链接:http://www.cnblogs.com/TianFang/archive/2008/09/19/1294521.htmlboost::scoped_ptr虽然简单易用,但它不能共享所有权的特性却大大限制了其使用范围,而boost::shared_ptr可以解决这一局限。顾名思义,boost::shared_ptr是可以共享所有权的智能指针,首先让我们通过一个例子看看它的转载 2017-07-12 18:31:59 · 290 阅读 · 0 评论 -
boost.asio系列——io_service
原文链接:http://www.cnblogs.com/TianFang/archive/2013/02/02/2890366.htmlIO模型io_service对象是asio框架中的调度器,所有异步io事件都是通过它来分发处理的(io对象的构造函数中都需要传入一个io_service对象)。 asio::io_service io_service;转载 2017-07-12 18:18:23 · 224 阅读 · 0 评论 -
C++代理实现
使用示例:#include #include "Delegate.h"bool test1(void *param){ printf("hello\n"); return true;}class ClsTest{public: bool test(void *param) { int a = *(int*)(param); printf("cls test %原创 2015-06-13 16:25:13 · 836 阅读 · 0 评论 -
C++基础知识总结
原创 2015-06-09 17:39:49 · 480 阅读 · 0 评论 -
基于IE内核的多标签浏览器开发过程
By Fanxiushu 2014 转载或引用请注明原作者原文链接:http://blog.csdn.net/fanxiushu/article/details/21837859在Windows平台做IE内核浏览器,可以非常简单,拖拖控件就能形成一个简单的”浏览器“。这顶多算是一个嵌入在应用程序中的一个COM控件而已,他不支持标签浏览,没处理弹出页面等等,压根算不上浏览器。转载 2015-04-04 09:29:31 · 8862 阅读 · 0 评论 -
vs断点未能绑定
原文链接:http://blog.csdn.net/pc0de/article/details/41790063突然发现所有的c++项目在调试的时候加断点都会报错:”不能设置下面的断点。。。。。断点未能绑定”。起初以为是项目的设置问题,找了各种可能的原因, 包括pdb文件的设置、debug/Release设置,然后发现所有项目都是这样重启vs、重启电脑, 最后论坛求助, 发转载 2014-12-24 17:48:32 · 4538 阅读 · 5 评论 -
C++ 虚析构函数
类型需要虚析构函数的另外一个特征 是该类型具有指针成员或引用成员。如果有指针成员和引用成员,则该类型通常需要实现析构函数以及拷贝操作。 通常,一个实现了析构函数的类型同时也需要实现拷贝构造函数与拷贝复制函数。 作为一个经验法则:如果你有一个带有虚函数功能的类,则它需要一个虚析构函数,原因如下: 1. 如果一个类有虚函数功能,它经常作为一个基类使用。 2.如果它是转载 2014-12-04 17:56:53 · 570 阅读 · 0 评论 -
c++(重载、覆盖、隐藏)
原文链接:http://www.cnblogs.com/qlee/archive/2011/07/04/2097055.html转载 2014-11-24 16:56:25 · 477 阅读 · 0 评论 -
C++中友元(友元函数和友元类)的用法和功能
采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和安全性检查等都需要时间开销),但它破坏了类的封装性和转载 2014-11-25 13:56:52 · 665 阅读 · 0 评论 -
std::function与std::bind 函数指针
原文链接:http://blog.csdn.net/qq575787460/article/details/8531397function模板类和bind模板函数,使用它们可以实现类似函数指针的功能,但却却比函数指针更加灵活,特别是函数指向类 的非静态成员函数时。std::function可以绑定到全局函数/类静态成员函数(类静态成员函数与全局函数没有区别),如果要绑定到类的非转载 2014-07-31 16:43:09 · 458 阅读 · 0 评论 -
map等关联容器 vector等序列容器 如何防止迭代器失效
原文链接:http://www.cnblogs.com/dongzhiquan/archive/2011/12/18/2292702.html转载 2014-05-15 23:44:14 · 485 阅读 · 0 评论 -
笔记: LUA基础: METATABLE, 多重返回值, 迭代器
原文链接:http://www.cnblogs.com/apexaddon/articles/1461768.htmlmetatable在一些博客上看到这个词被译作元表, 我更偏向把它称作重载表, 因为metatable的作用更像是重载(override)对应表的操作行为的(比如+, *).构成metatable的方式是一个metatable挂接一个table, 如下所转载 2014-02-28 21:48:28 · 838 阅读 · 0 评论 -
使用Visual Studio2012调试Redis源码
原文链接:http://blog.csdn.net/Rongbo_J/article/details/45288223Redis是一款C语言编写Key-Value存储系统,基于BSD协议开放源码,其源码托管在github上,大概有三万行。源码地址:https://github.com/antirez/redis源码依赖于Linux平台,采用GNU MAKE工具进行项目管转载 2017-06-12 18:09:12 · 854 阅读 · 1 评论 -
Boost Asio介绍--之一
原文链接:http://blog.csdn.net/ithiker/article/details/22153001一 简介 Boost Asio ( asynchronous input and output)关注异步输入输出。Boost Asio库提供了平台无关性的异步数据处理能力(当然它也支持同步数据处理)。一般的数据传输过程需要通过函数的返回值来判断数据转载 2017-05-25 14:32:24 · 607 阅读 · 0 评论 -
详解c++指针的指针和指针的引用
原文链接: http://www.cnblogs.com/li-peng/p/4116349.html展示一下使用指针的指针和指针的引用修改传递给方法的指针,以便更好的使用它。(这里说的指针的指针不是一个二维数组)为什么需要使用它们当我们把一个指针做为参数传一个方法时,其实是把指针的复本传递给了方法,也可以说传递指针是指针的值传递。如果我们在方法内部修改指针会出转载 2017-06-28 11:59:28 · 205 阅读 · 0 评论 -
关于网络编程的一些实用技巧和细节
原文链接:https://cloud.tencent.com/developer/article/1107097这些年,接触了形形色色的项目,写了不少网络编程的代码,从windows到linux,跌进了不少坑,由于网络编程涉及很多细节和技巧,一直想写篇文章来总结下这方面的心得与经验,希望对来者有一点帮助,那就善莫大焉了。本文涉及的平台包括windows和linux,下面开始啦。一、非阻...转载 2018-07-17 11:06:46 · 331 阅读 · 1 评论 -
C++11 并发指南五(std::condition_variable 详解)
原文连接:https://www.cnblogs.com/haippy/p/3252041.html前面三讲《C++11 并发指南二(std::thread 详解)》,《C++11 并发指南三(std::mutex 详解)》分别介绍了 std::thread,std::mutex,std::future 等相关内容,相信读者对 C++11 中的多线程编程有了一个最基本的认识,本文将转载 2018-01-18 15:05:55 · 681 阅读 · 0 评论 -
A* 寻路算法
原文链接:http://www.html-js.com/article/Random-A-routing-algorithmA* 算法是一种解决图遍历问题的计算机算法,在电子游戏中最主要的应用是寻找地图上两点间的最佳路线。为了便于理解,本文将以正方形网格地图为例进行讲解。如图,蓝色格子是障碍物,灰色格子是可通过区域,绿色格子是起点(S),红色格子是终点(D)。我转载 2017-11-22 12:09:18 · 409 阅读 · 0 评论 -
数字签名与数字证书
原文链接:http://blog.csdn.net/oscar999/article/details/9364101前言先看一下百度百科对数字签名和数字证书的解释:数字签名:将报文按双方约定的HASH算法计算得到一个固定位数的报文摘要。在数学上保证:只要改动报文中任何一位,重新计算出的报文摘要值就会与原先的值不相符。这样就保证了报文的不可更改性。转载 2017-11-19 21:57:56 · 260 阅读 · 0 评论 -
盛大游戏李阳:龙之谷服务器设计
9月23日,首届“梦想·匠心”腾讯游戏开发者大会于深圳举行,在技术分论坛上,盛大游戏《龙之谷》手游技术总监李阳分享了龙之谷的服务器设计。作为《龙之谷》的手游技术负责人,李阳从事多年游戏后端开发,参与多款上线项目研发。李阳于本次论坛上分享《龙之谷》手游服务器在架构设计、灾备处理、性能优化、压力测试等方面遇到的一些问题和经验总结。以下内容为分享实录:李阳:谢谢大家!我大概介绍一下我们项转载 2017-10-26 11:56:44 · 511 阅读 · 0 评论 -
va_start和va_end使用详解
原文链接:http://www.cnblogs.com/hanyonglu/archive/2011/05/07/2039916.html本文主要介绍va_start和va_end的使用及原理。 在以前的一篇帖子Format MessageBox 详解中曾使用到va_start和va_end这两个宏,但对它们也只是泛泛的了解。 介绍这两个宏之前先看一下C中传递函数的转载 2017-11-07 21:35:26 · 269 阅读 · 0 评论 -
SGI STL 的内存管理
原文链接:http://www.cnblogs.com/sld666666/archive/2010/07/01/1769448.html1. 好多废话 在分析完nginx的内存池之后,也想了解一下C++的内存管理,于是就很自然得想到STL。STL是一个重量级的作品,据说当时的出现,完全可以说得上是一个划时代意义的作品。泛型、数据结构和算法的分离、底耦转载 2017-09-28 14:48:31 · 231 阅读 · 0 评论 -
Linux epoll模型
http://www.cnblogs.com/venow/archive/2012/11/30/2790031.html定义: epoll是Linux内核为处理大批句柄而作改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著的减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。因为它会复用文件描述符集合来传递结果而不是迫使开转载 2017-09-12 18:16:02 · 291 阅读 · 0 评论 -
十字链表的AOI算法实现
http://www.cnblogs.com/rond/p/6114919.htmlAOI主要有九宫格、灯塔和十字链表的算法实现。本文阐述十字链表的实现和尝试。1. 基本原理根据二维地图,将其分成x轴和y轴两个链表。如果是三维地图,则还需要维护多一个z轴的链表。将对象的坐标值按照大小相应的排列在相应的坐标轴上面。2. 基本接口对对象的操作主要有以下三个接转载 2017-09-12 17:21:06 · 931 阅读 · 0 评论 -
nginx内存池
原文链接:http://www.cnblogs.com/sld666666/archive/2010/06/27/1766255.html1.为什么需要内存池 为什么需要内存池?a. 在大量的小块内存的申请和释放的时候,能更快地进行内存分配(对比malloc和free)b.减少内存碎片,防止内存泄露。2.内存池的原理 内存池的原理转载 2017-09-28 14:44:43 · 267 阅读 · 0 评论 -
服务器架构
作者:韦易笑链接:https://www.zhihu.com/question/29779732/answer/45791817来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。手游页游和端游的服务端本质上没区别,区别的是游戏类型。类型1:卡牌、跑酷等弱交互服务端卡牌跑酷类因为交互弱,玩家和玩家之间不需要实时面对面PK,打一下对方的离线数转载 2017-09-12 16:19:15 · 502 阅读 · 0 评论 -
结构体在内存中的对齐规则
一个结构体变量定义完之后,其在内存中的存储并不等于其所包含元素的宽度之和。例一: #include using namespace std;转载 2017-09-18 15:20:48 · 407 阅读 · 0 评论 -
模版函数指针,C++委托的实现
原文链接:http://www.cppblog.com/tonykee/archive/2008/09/29/63034.html今天写引擎的时候,很想加入一些回调函数,以前一直没时间整理这块,这次一定要下决心好好整整代码,纯粹用多态,很多类非要加个帽子,类之间的关系也显的很单一,有的情况需要用到委托的回调机制,这是个很好的东西,在C#里面是原生支持的,C++里面本来函数指针是转载 2014-02-11 11:28:18 · 550 阅读 · 0 评论 -
C++11新特性:Lambda函数(匿名函数)
lambdac++string编译器functionpointers目录(?)[-]基本的Lambda函数Lambda函数的用处Lambda函数中的变量截取Lambda函数和STL声明:本文参考了Alex Allain的文章http://www.cprogramming.com/c++11/c++11-lambda-closures.html加入转载 2013-08-17 17:20:37 · 624 阅读 · 0 评论 -
如何在程序中动态设置墙纸
原文链接:http://www.cnblogs.com/lzjsky/archive/2011/01/17/1937514.html大家都知道设置WINDOWS桌面墙纸的WIN32 API是SystemParametersInfo, 使用SPI_SETDESKWALLPAPER参数便能设置墙纸: ::SystemParametersInfo(SPI_SETDESKWALLPAPER, 0转载 2012-12-25 16:34:29 · 496 阅读 · 0 评论 -
计算几何,判两线段相交模板
#include #include struct Point{double x,y;};struct stline{Point a,b;} line1,line2;int dblcmp(double a,double b){if (fabs(a-b)if (a>b) return 1;else return -1;}//***************点积判点是否在线段上******转载 2009-08-11 10:10:00 · 669 阅读 · 0 评论 -
费马小定理
费马小定理Ap-1 mod p = 1p为素数。原创 2009-08-10 09:35:00 · 533 阅读 · 1 评论 -
1096 prim 最小生成数
In the planet w-503 of galaxy cgb, there is a kind of intelligent creature named QS. QScommunicate with each other via networks. If two QS want to get connected, they need to buy two network adapters原创 2009-08-07 09:54:00 · 688 阅读 · 0 评论 -
辗转相除and二分查找
//辗转相除求最大公因子(递归)#include#includeusing namespace std;int gcd(long a,long b){ long r=a%b; if(r==0) return b; else gcd(b,r);}int main(){ long a,b,c; scanf("%d%d",&a,&b原创 2009-08-04 17:32:00 · 526 阅读 · 0 评论 -
1701 math
我们知道求两个数最大公约数的一种方法叫辗转相除法。并且当两个数的最大公约数为1时,我们就称这两个数互质。cxw喜欢数学,现在他遇到一个问题正准备向数学大牛daxia请教:“给定一个正整数n,在所有小于n的正整数中,求与n的最大公约数为d的所有的数的和.”,你能帮他解决这个问题吗? Input有多组输入数据,每组数据有两个正整数n,d. 其中1数据保证n能被d整除. Output对于原创 2009-08-06 09:35:00 · 550 阅读 · 0 评论 -
条件表达式求值
a?b:c运算符号是一个三元运算符号,其语法组成部分如下: test ? statement1 : statement2 部分描述Test任何表达式,只包含问号(“?”),冒号(“:”)和数字。statement1当 test 是 非0 时执行的语句。statement2当 test 是 0 时执行的语句。表达式的值为原创 2009-07-31 10:39:00 · 1376 阅读 · 1 评论 -
1339 表达式求值(+ - * / )
//表达式求值#include#include#include#include#includeusing namespace std;bool priority(char a,char b){ int m,n; switch(a) //栈外优先级 { case (: return true; case +: case -: m原创 2009-07-30 21:29:00 · 929 阅读 · 0 评论 -
图的广度优先,深度优先(邻接矩阵)
//邻接矩阵表示图广度优先,深度优先 #include #include /*gragh.txt 8 9ABCDEFGH 0 1 1 0 2 1 1 3 1 1 4 1 3 7 1 4 7 1 2 5 1 2 6 1 5 6 1 */ #include #define MaxVertex 100//最大顶点数 usi原创 2009-07-29 21:12:00 · 1572 阅读 · 1 评论 -
树的建立和遍历
#include#include#include#includeusing namespace std;//树结点struct BiTree { char data; BiTree *lchild,*rchild; }; //递归建树ABC$$DE$G$$F$$$ void CreatTree(BiTree *&b) { char ch原创 2009-07-28 18:55:00 · 556 阅读 · 0 评论