C++ 开发 Web 服务框架 - 基础知识:C++11 与 Boost Asio(一)(转)
摘要:https://blog.csdn.net/Watson2016/article/details/52415382 https://blog.csdn.net/Watson2016/article/details/52415429 https://blog.csdn.net/Watson2016/a
阅读全文
posted @
2021-01-21 22:38
书和田
阅读(233)
推荐(0)
boost::any 用法(转)
摘要:boost::any可以存放任何类型的C++类型,也可以是用户自定义的类型。非常方便,可以很方便的满足在运行过程中判断数据类型,从而进行相关的操作。 函数原型: // In header: <boost/any.hpp> class any { public: // construct/copy/d
阅读全文
posted @
2020-10-13 22:37
书和田
阅读(684)
推荐(0)
C++/C++11中std::deque的使用(转)
摘要:std::deque是双端队列,可以高效的在头尾两端插入和删除元素,在std::deque两端插入和删除并不会使其它元素的指针或引用失效。在接口上和std::vector相似。与sdk::vector相反,std::deque中的元素并非连续存储:典型的实现是使用一个单独分配的固定大小数组的序列。s
阅读全文
posted @
2020-08-10 14:45
书和田
阅读(1854)
推荐(0)
跳表SkipList的原理和实现(转)
摘要:https://www.iteye.com/blog/kenby-1187303 为什么选择跳表 目前经常使用的平衡数据结构有:B树,红黑树,AVL树,Splay Tree, Treep等。 想象一下,给你一张草稿纸,一只笔,一个编辑器,你能立即实现一颗红黑树,或者AVL树 出来吗? 很难吧,这需要
阅读全文
posted @
2020-08-03 16:12
书和田
阅读(344)
推荐(0)
洗牌算法(新转)
摘要:在工作中需要重写一个洗牌算法,根据网络中的资料分析了一下,已经有总结得很好的了,就直接总结转载了一下。 洗牌算法大致有3种,按发明时间先后顺序如下: 一、Fisher–Yates Shuffle 算法思想就是从原始数组中随机抽取一个新的数字到新数组中。算法英文描述如下: Write down the
阅读全文
posted @
2020-07-22 21:13
书和田
阅读(331)
推荐(0)
洗牌算法(转)
摘要:出处:https://mp.weixin.qq.com/s/uYPnZ0MsQIT2_t3lk8ju1g 问题 小E最近在设计一款斗地主小游戏,为了保证发到玩家手中的牌具有随机性,小E必须对现实世界中的洗牌过程进行模拟。看似简单的一个问题,却难住了小E。 于是,小E向老师请教。 思路 点评:上面即为
阅读全文
posted @
2020-07-22 21:10
书和田
阅读(213)
推荐(0)
深入理解C++ new/delete, new []/delete[]动态内存管理(转)
摘要:阅读目录 new/delete, new []/delete [] 基本格式 malloc/free和new/delete的区别和联系 new/delete, new []/delete[], malloc/free配套使用! 在C语言中,我们写程序时,总是会有动态开辟内存的需求,每到这个时候我们就
阅读全文
posted @
2020-07-20 21:54
书和田
阅读(219)
推荐(0)
C++强制类型转换运算符(static_cast、reinterpret_cast、const_cast和dynamic_cast)(转)
摘要:将类型名作为强制类型转换运算符的做法是C语言的老式做法,C++ 为保持兼容而予以保留。C++ 引入了四种功能不同的强制类型转换运算符以进行强制类型转换:static_cast、reinterpret_cast、const_cast 和 dynamic_cast。强制类型转换是有一定风险的,有的转换并
阅读全文
posted @
2020-07-20 21:48
书和田
阅读(236)
推荐(0)
std::accumulate的用法(转)
摘要:std :: accumulate累计范围内的值返回将范围中的所有值累加[first,last)到init的结果。 默认操作是向上添加,但可以将不同的操作指定为binary_op。 accumulate (InputIterator first, InputIterator last, T init
阅读全文
posted @
2020-07-20 20:53
书和田
阅读(1355)
推荐(0)
std::unique()函数(转)
摘要:unique是 c++标准模板库STL中十分实用的函数之一,使用此函数需要 #include <algorithm> 一, 该函数的作用是“去除”容器或者数组中相邻元素的重复出现的元素,注意 (1) 这里的去除并非真正意义的erase,而是将重复的元素放到容器的末尾,返回值是去重之后的尾地址。 (2
阅读全文
posted @
2020-07-20 20:40
书和田
阅读(738)
推荐(0)
std::vector的reserve和resize的区别(转)
摘要:先看看《C++ Primer》中对resize()函数两种用法的介绍: 1、resize(n) 调整容器的长度大小,使其能容纳n个元素。 如果n小于容器的当前的size,则删除多出来的元素。 否则,添加采用值初始化的元素。 2、 resize(n,t) 多一个参数t,将所有新添加的元素初始化为t。
阅读全文
posted @
2020-07-20 19:49
书和田
阅读(705)
推荐(0)
__declspec用法总结(Microsoft c++)(转)
摘要:“__declspec”是Microsoft c++中专用的关键字,它配合着一些属性可以对标准C++进行扩充。这些属性有:align、allocate、deprecated、 dllexport、dllimport、 naked、noinline、noreturn、nothrow、novtable、
阅读全文
posted @
2020-07-14 10:29
书和田
阅读(298)
推荐(0)
_declspec(thread)变量(转)
摘要:thread 用于声明一个线程本地变量. __declspec(thread)的前缀是Microsoft添加给Visual C++编译器的一个修改符。它告诉编译器,对应的变量应该放入可执行文件或DLL文件中它的自己的节中。__declspec(thread)后面的变量 必须声明为函数中(或函数外)的
阅读全文
posted @
2020-07-14 10:25
书和田
阅读(490)
推荐(0)
STL STD::list使用说明(转)
摘要:stl list使用说明 使用标准的std::list进行容器数据处理时,操作比较底层。我们可以,减少引用标准MFC标准库,减少系统的大小,但同时也存在有不方便的操作之处,这里同大家分享一些使用心得...... 在使用std::list<>链表时,难免会对数据进行添加删除操作。而遍历链表则有两种方式
阅读全文
posted @
2020-07-09 20:09
书和田
阅读(1105)
推荐(0)
C++中explicit关键字的使用(转)
摘要:看书看到了explicit关键字,就来做个笔记,讲得比较明白,比较浅。 在C++中,我们有时可以将构造函数用作自动类型转换函数。但这种自动特性并非总是合乎要求的,有时会导致意外的类型转换,因此,C++新增了关键字explicit,用于关闭这种自动特性。即被explicit关键字修饰的类构造函数,不能
阅读全文
posted @
2020-07-09 19:58
书和田
阅读(180)
推荐(0)
c++中获得对象类型 typeid 与 type_info(转)
摘要:复杂部分略去,摘录要素如下: 1.typeid是C++的关键字之一,等同于sizeof这类的操作符。 2.typeid操作符的返回结果是名为type_info的标准库类型的对象的引用(在头文件typeinfo中定义) 3.C++并没有规定typeid实现标准,各个编译器可能会不一样。 4.编译器会为
阅读全文
posted @
2020-07-09 19:28
书和田
阅读(945)
推荐(0)
std::type_index(转)
摘要:typeid运算符,返回类型信息const std::type_info&。这种类型是不能赋值的。例如: const std::typeinfo& a = typeid(int); //初始化可以a = typeid(double); //再赋值就是错误为了解决这个问题,C++引入了std::typ
阅读全文
posted @
2020-07-09 19:26
书和田
阅读(2707)
推荐(0)
__sync_fetch_and_add系列(转)
摘要:https://www.cnblogs.com/jiu0821/p/7269542.html __sync_fetch_and_add系列一共有十二个函数,有加/减/与/或/异或/等函数的原子性操作函数,__sync_fetch_and_add,顾名思义,先fetch,然后自加,返回的是自加以前的值
阅读全文
posted @
2020-07-09 12:36
书和田
阅读(1193)
推荐(0)
InterlockedIncrement函数详解(转)
摘要:InterLockedIncrement and InterLockedDecrement 实现数的原子性加减。什么是原子性的加减呢? 举个例子:如果一个变量 Long value =0; 首先说一下正常情况下的加减操作:value+=1; 1:系统从Value的空间取出值,并动态生成一个空间来存储
阅读全文
posted @
2020-07-09 12:32
书和田
阅读(864)
推荐(1)
文件操作:fseek()(转)
摘要:int fseek(FILE *stream, long offset, int fromwhere); fseek 用于二进制方式打开的文件,移动文件读写指针位置. int fseek( FILE *stream, long offset, int origin ); 第一个参数stream为文件
阅读全文
posted @
2020-07-07 15:39
书和田
阅读(153)
推荐(0)