
C++
文章平均质量分 85
对方感受到
走自己喜欢的路,让别人说去
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
define的一些小小理解
当我们使用define时候会不会理所当然地认为他定义的名字就是后面表达式的结果呢? 譬如下例 #include #define N 4 #define M N+1 #define S M*2+1 using namespace std; void main()原创 2011-08-09 14:50:36 · 605 阅读 · 0 评论 -
回旋数的求解
回旋数就是从中间的1开始然后围绕着这个1,按自然数的增长形式回旋1, 如: 43 44 45 46 47 48 49 42 21 22 23 24 25 26 41 20原创 2012-10-21 22:42:34 · 1371 阅读 · 0 评论 -
C++模板的坑
最近在写C++ 模板类,发现在.h中声明,在.cpp中定义,然后main函数文件中使用这个模板类就会一直link2019,一开始还以为是vs设置编译顺序问题,但是搞了半天发现vs都是从include“” 开始编译工程的,所以不存在这种问题,后来咨询了我的大学好舍友 终于知道原因了,原来是模板不能把声明和定义分开文件实现的,我了个擦,这真是个生坑啊 啊啊啊,希望大家注意。原创 2016-04-25 17:14:10 · 719 阅读 · 0 评论 -
Lua与C++ 交互
最近比较有时间,就想总结下自己学到的东西。 由于我出来工作就是使用了 lua 和 c++,因此这里想说下怎么使用这两个东西来搭建程序,怎么完成一个应用,当然我个人能力有限,有哪里说的不对的地方,还请网友们多多指点,大家相互学习。好了废话少说。。。开始 lua是解析行脚本语言,他不能单独运行,于是我们下载他的解析器源码,点击这网址 http://www.lua.org/ 在官网中找到lua源码包原创 2016-04-19 12:11:37 · 471 阅读 · 0 评论 -
C++对象模型
最近在看侯捷的C++对象模型,顺便把他的例子也做了一遍便于深刻理解C++模型,例子如下:头文件 #ifndef MODEL_H #define MODEL_H #include #include using namespace std; template class Point{ public: Point(type coords[dim]); Point(); type& ope翻译 2016-04-24 11:08:15 · 346 阅读 · 0 评论 -
ABA问题
ABA问题分析 /* Naive lock-free stack which suffers from ABA problem.*/ class Stack { std::atomic top_ptr; // // Pops the top object and returns a pointer to it. // Obj* Pop() {翻译 2016-08-10 21:18:52 · 704 阅读 · 0 评论 -
贪吃回旋蛇n
int **arr = new int*[n]; for (int m = 0; m < n; ++m) arr[m] = new int[n]; bool horizontal = true, reversed = false; int i = 0, j = 0; for (int k = 1; k < n*n + 1; ++k) { if (horizontal) {原创 2016-09-23 14:35:45 · 910 阅读 · 0 评论 -
C++实现控制台输出具有颜色类
使用c++实现一个在控制台打印不同级别文字以不同颜色显示的功能,该类还有待完善原创 2016-09-27 22:43:45 · 3559 阅读 · 0 评论 -
protobuf源码编译
google proto编译使用方式原创 2016-09-28 12:53:27 · 2842 阅读 · 0 评论 -
实现两个有序链表的合并
如题,实现两个带头链表的合并,返回合并后的链表的头指针 #include using namespace std; struct Node{ //节点类型 int data; Node *next; }; Node * pSort(Node *a,Node *b) //带有头指针的链表 { if(a->next==NULL) return b; if(b-原创 2012-10-21 22:33:35 · 604 阅读 · 0 评论 -
VC多线程编程
一、问题的提出 编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下: void CSingleThreadDlg::OnSleepSixSecond() { Sleep(6000); //转载 2012-02-13 11:15:53 · 635 阅读 · 1 评论 -
插入元素到二元查找树
typedef BTreeNode *PBTreeNode; PBTreeNode Insert(ElementType x,PBTreeNode T) { if(T==NULL) { T=new BTreeNode; T->Left=NULL; T->Right=NULL;翻译 2012-08-15 16:06:36 · 548 阅读 · 0 评论 -
数据结构重现之一 ----------表
最近在学习,准备找工作,想把学习到的东西掌握好,于是就一遍理论一遍实践,把自己学到的贴出来,就算是原来文章中有的,我也要通过自己的双手把他敲出来,这样子我觉得总会有收获的。看到之一当然会陆续有之二,················。如果大家看了有什么建议,不啻吝教,我觉得学习需要分享,不分享学到了也没有多大作用,不知道你觉得如何?好了,废话就少说了,直入正题。 今天看了数据结构中俗称最简单,最基原创 2012-08-23 09:10:55 · 614 阅读 · 0 评论 -
数据结构重现之一 ----------栈
栈的实现比较简单一点,主要是考虑先进后出就可以了。 #ifndef _STACK_ #define _STACK_ #include using namespace std; template class Node{ public: T m_data; Node *next; Node(const T data) : m_data(data),ne原创 2012-08-24 19:32:33 · 752 阅读 · 0 评论 -
算法:最大公约数、斐波那契
其实求最大公约数有很多种方法 一下均以C++实现 欧几里得算法 记得在学小学的时候就会知道求两个数(m,n)的最大公约数 因为m=k*n+ p,其中n为除数,k为商,p为余数即m%n。从式子可以看出m,n的最大公约数也是k*n和p的最大公约数,因为其最大公约数小于等于n,所以这个最大公约数也是n,p的最大公约数,因此就出现了辗转相除发。在计算机中我们是这样子实现的。 int g原创 2012-09-04 14:53:20 · 1649 阅读 · 0 评论 -
用C++设计一个不能被继承的类
用C++设计一个不能被继承的类 题目:用C++ 设计一个不能被继承的类。 分析:这是Adobe 公司2007 年校园招聘的最新笔试题。这道题除了考察应聘者的C++ 基本功底外,还能考察反应能力,是一道很好的题目。 在Java 中定义了关键字final ,被final 修饰的类不能被继承。但在C++ 中没有final 这个关键字,要实现这个要求还是需要花费一些精力。 首先想到的是在C转载 2012-09-04 15:02:08 · 630 阅读 · 0 评论 -
结构体所占空间大小的运算
在C/C++中我们常常会看到有求一个结构体的大小的情况,有时候我们就会想:不就是结构体中各个数据类型所占的空间加起来就行啦,那么事实上是不是这样呢?答案:不是滴。原因是:为了加快读写数据的速度,编译器就实现了数据对其的做法来为每一个结构体分配空间。 这里我只讲结构体中数据对其的一个要点:2倍。 2倍(本人自己总结的)是指有两个倍数要记住,第一就是结构中的各类型的倍数,第二就是结构体这个类型的倍原创 2012-08-27 10:57:45 · 11524 阅读 · 5 评论 -
指向二维数组的指针定义方式
看了一些资料,指向二维数组的指针定义方式并不是直接定义指针的指针 int a[3][6]; int **p=a; 像这样定义是错误的 因为a代表着除了第一列以外的列数的维数大小,如a+1的地址就是a[1]的地址,也就是a[1][0]的地址,而p仅是整形指针的指针,没跨越一次就是4字节,因此他们的大小是不匹配的,所以这样子直接等于号是不正确的。 要真正的定义方式应概是定义指原创 2012-10-12 21:44:42 · 30450 阅读 · 0 评论 -
将无符号整形每一位都翻转过来
最近笔试的时候碰到了这样的题目,但是不会做,回来查了一下书之后,其实现与君共享。 如 00000000 00000000 00000000 00000011 反置后为 11000000 00000000 00000000 00000000 不需要通过循环 unsigned rev(unsigned x) { x=(x & 0x55555555) > 1; x翻译 2012-10-21 22:27:37 · 1057 阅读 · 0 评论 -
计算一个数的二进制的存在的一的位数
如题:这里提出两种实现方法 1、不需要通过循环 int CNByteNum(int x) { x=(x & 0x55555555) + ((x>>1) & 0x55555555); x=(x & 0x33333333) + ((x>>2) & 0x33333333); x=(x & 0x0F0F0F0F) + ((x>>4) & 0x0F0F0F0F); x=原创 2012-10-21 22:29:36 · 603 阅读 · 0 评论 -
connect实现非阻塞模式
文章出处:LinuxKernel 参考博客: ①setsockopt()函数使用详解:http://blog.youkuaiyun.com/tody_guo/article/details/5972588 ②setsockopt :SO_LINGER 选项设置:http://blog.youkuaiyun.com/factor2000/article/details/3929816 ③TIME_W转载 2016-09-29 20:18:11 · 1177 阅读 · 0 评论