![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 85
对方感受到
走自己喜欢的路,让别人说去
展开
-
define的一些小小理解
当我们使用define时候会不会理所当然地认为他定义的名字就是后面表达式的结果呢?譬如下例#include#define N 4#define M N+1#define S M*2+1using namespace std;void main()原创 2011-08-09 14:50:36 · 559 阅读 · 0 评论 -
回旋数的求解
回旋数就是从中间的1开始然后围绕着这个1,按自然数的增长形式回旋1,如:43444546474849 42212223242526 4120原创 2012-10-21 22:42:34 · 1226 阅读 · 0 评论 -
C++模板的坑
最近在写C++ 模板类,发现在.h中声明,在.cpp中定义,然后main函数文件中使用这个模板类就会一直link2019,一开始还以为是vs设置编译顺序问题,但是搞了半天发现vs都是从include“” 开始编译工程的,所以不存在这种问题,后来咨询了我的大学好舍友 终于知道原因了,原来是模板不能把声明和定义分开文件实现的,我了个擦,这真是个生坑啊 啊啊啊,希望大家注意。原创 2016-04-25 17:14:10 · 662 阅读 · 0 评论 -
Lua与C++ 交互
最近比较有时间,就想总结下自己学到的东西。由于我出来工作就是使用了 lua 和 c++,因此这里想说下怎么使用这两个东西来搭建程序,怎么完成一个应用,当然我个人能力有限,有哪里说的不对的地方,还请网友们多多指点,大家相互学习。好了废话少说。。。开始lua是解析行脚本语言,他不能单独运行,于是我们下载他的解析器源码,点击这网址 http://www.lua.org/ 在官网中找到lua源码包原创 2016-04-19 12:11:37 · 429 阅读 · 0 评论 -
C++对象模型
最近在看侯捷的C++对象模型,顺便把他的例子也做了一遍便于深刻理解C++模型,例子如下:头文件#ifndef MODEL_H#define MODEL_H#include #include using namespace std;templateclass Point{public: Point(type coords[dim]); Point(); type& ope翻译 2016-04-24 11:08:15 · 277 阅读 · 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 · 637 阅读 · 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 · 861 阅读 · 0 评论 -
C++实现控制台输出具有颜色类
使用c++实现一个在控制台打印不同级别文字以不同颜色显示的功能,该类还有待完善原创 2016-09-27 22:43:45 · 3472 阅读 · 0 评论 -
protobuf源码编译
google proto编译使用方式原创 2016-09-28 12:53:27 · 2746 阅读 · 0 评论 -
实现两个有序链表的合并
如题,实现两个带头链表的合并,返回合并后的链表的头指针#includeusing 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 · 551 阅读 · 0 评论 -
VC多线程编程
一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下:void CSingleThreadDlg::OnSleepSixSecond() { Sleep(6000); //转载 2012-02-13 11:15:53 · 593 阅读 · 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 · 499 阅读 · 0 评论 -
数据结构重现之一 ----------表
最近在学习,准备找工作,想把学习到的东西掌握好,于是就一遍理论一遍实践,把自己学到的贴出来,就算是原来文章中有的,我也要通过自己的双手把他敲出来,这样子我觉得总会有收获的。看到之一当然会陆续有之二,················。如果大家看了有什么建议,不啻吝教,我觉得学习需要分享,不分享学到了也没有多大作用,不知道你觉得如何?好了,废话就少说了,直入正题。今天看了数据结构中俗称最简单,最基原创 2012-08-23 09:10:55 · 570 阅读 · 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 · 699 阅读 · 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 · 1605 阅读 · 0 评论 -
用C++设计一个不能被继承的类
用C++设计一个不能被继承的类题目:用C++ 设计一个不能被继承的类。分析:这是Adobe 公司2007 年校园招聘的最新笔试题。这道题除了考察应聘者的C++ 基本功底外,还能考察反应能力,是一道很好的题目。在Java 中定义了关键字final ,被final 修饰的类不能被继承。但在C++ 中没有final 这个关键字,要实现这个要求还是需要花费一些精力。首先想到的是在C转载 2012-09-04 15:02:08 · 592 阅读 · 0 评论 -
结构体所占空间大小的运算
在C/C++中我们常常会看到有求一个结构体的大小的情况,有时候我们就会想:不就是结构体中各个数据类型所占的空间加起来就行啦,那么事实上是不是这样呢?答案:不是滴。原因是:为了加快读写数据的速度,编译器就实现了数据对其的做法来为每一个结构体分配空间。这里我只讲结构体中数据对其的一个要点:2倍。2倍(本人自己总结的)是指有两个倍数要记住,第一就是结构中的各类型的倍数,第二就是结构体这个类型的倍原创 2012-08-27 10:57:45 · 11405 阅读 · 5 评论 -
指向二维数组的指针定义方式
看了一些资料,指向二维数组的指针定义方式并不是直接定义指针的指针int a[3][6];int **p=a; 像这样定义是错误的因为a代表着除了第一列以外的列数的维数大小,如a+1的地址就是a[1]的地址,也就是a[1][0]的地址,而p仅是整形指针的指针,没跨越一次就是4字节,因此他们的大小是不匹配的,所以这样子直接等于号是不正确的。要真正的定义方式应概是定义指原创 2012-10-12 21:44:42 · 30282 阅读 · 0 评论 -
将无符号整形每一位都翻转过来
最近笔试的时候碰到了这样的题目,但是不会做,回来查了一下书之后,其实现与君共享。如 00000000 00000000 00000000 00000011 反置后为 11000000 00000000 00000000 00000000 不需要通过循环unsigned rev(unsigned x){x=(x & 0x55555555) > 1;x翻译 2012-10-21 22:27:37 · 1000 阅读 · 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 · 558 阅读 · 0 评论 -
connect实现非阻塞模式
文章出处:LinuxKernel参考博客:①setsockopt()函数使用详解:http://blog.csdn.net/tody_guo/article/details/5972588②setsockopt :SO_LINGER 选项设置:http://blog.csdn.net/factor2000/article/details/3929816③TIME_W转载 2016-09-29 20:18:11 · 1120 阅读 · 0 评论