![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++ 学习
大冰的小屋
这个作者很懒,什么都没留下…
展开
-
WebSocket的简单使用
WebSocket一种在单个 TCP 连接上进行全双工通讯的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端直接向客户端推送数据而不需要客户端进行请求,在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并允许数据进行双向传送。——- 《维基百科》最近在项目中使用了WebSocket,开发了一个非常简单的服务器端原创 2016-11-15 07:21:55 · 7548 阅读 · 0 评论 -
在C++中模拟Java中final对虚函数的使用
有时候要求一个类的虚函数成员原创 2014-07-24 10:48:14 · 878 阅读 · 0 评论 -
小记C++中switch....case的误用
最近在看大话设计模式,书上的例子都是用C#写的,所以和C++还是有差别的地方,今天就遇到了switch.....case的差别。 对于switch(条件表达式) { case 标号1: ..... case 标号2: ..... .......原创 2014-01-11 16:53:40 · 1217 阅读 · 0 评论 -
内存碎片
文章出处:转载 2014-05-25 12:29:35 · 545 阅读 · 0 评论 -
C++中的mutable关键字
mutable关键字是用来指定可变数据原创 2014-05-24 15:31:09 · 952 阅读 · 0 评论 -
C++11中新增加的智能指针
针对动态内存原创 2014-05-24 22:36:25 · 1041 阅读 · 0 评论 -
再看C++中的赋值操作符重载和拷贝构造函数
C++中默认的赋值操作符原创 2014-06-01 11:53:31 · 804 阅读 · 0 评论 -
C++中的操作符重载
C++提供了操作符的重载,是操作符有了多种语义。它使用了operator关键字,后接需要定义的操作符符号,原创 2013-10-15 22:21:55 · 969 阅读 · 0 评论 -
计数排序
计数排序的基本思想:对原创 2014-05-11 17:04:13 · 679 阅读 · 0 评论 -
编程中使用无符号类型潜在的问题
在C和C++中,关于数据类型的原创 2014-04-24 09:25:07 · 766 阅读 · 0 评论 -
QTcpSocket 发送数据的几种方法
QTcpSocket 发送数据的几种方法1、QTcpSocket 继承于QAbstractSocket继承于QIODevice2、QTcpSocket 提供的几种接收和发送数据方法write ( const char *, qint64 ) : qint64write ( const char * ) : qint64write ( const QByteArra转载 2014-03-13 15:45:50 · 6476 阅读 · 1 评论 -
C++模版的特化
转自http://www.cnblogs.com/kyleada/archive/2011/05/23/2054479.html 说起C++的模板及模板特化, 相信很多人都很熟悉 ,但是说到模板特化的几种类型,相信了解的人就不是很多。我这里归纳了针对一个模板参数的类模板特化的几种类型, 一是特化为绝对类型; 二是特化为引用,指针类型;三是特化为另外一个类模板。这里用一个简单的例子来说明转载 2014-03-05 21:57:42 · 735 阅读 · 0 评论 -
怎么防止类被继承?对于不能被继承的类,怎么初始化及销毁它的实例?
怎么防止类被继承?对于不能被继承的类,怎么初始化及销毁它的实例?转载 2014-06-01 20:48:43 · 732 阅读 · 0 评论 -
关于new和delete的编译器的内部实现---来自深度探索C++对象模型
对于new运算符的使用:int *pi = new int(5); 看起来原创 2014-06-16 21:45:21 · 926 阅读 · 0 评论 -
支持Windows和Linux的文件目录创建和删除操作
文件目录的创建和删除在Windows和Linux下使用的函数有所不同,这里整理了一份。另外在删除目录时,需要先删除目录中的内容。在这里只做了删除目录的内容,没有做删除当前目录的操作。代码如下: file_util.h#ifndef FILE_UTIL_H#define FILE_UTIL_H#ifdef WIN32#include <windows.h>#include <direct.h>原创 2016-11-30 10:23:34 · 845 阅读 · 0 评论 -
可变形参的函数使用
0.使用背景 在单元测试的数据构造中,有时会遇到数据无规律、个数不确定的情况,甚至数据的类型也不能确定。这时候该怎么办呢?使用函数重载,如果参数个数变化较大,需要定义的重载函数就变得较多。于是可变形参的函数就派上了用场。下面介绍两种设计方法。 C++11新标准提供的一种方法:如果所有的实参类型相同,可以传递一个名为initializer_list的标准库类型。 C语言提供的省略符原创 2015-08-17 14:33:58 · 1244 阅读 · 0 评论 -
C++ 类中数据在内存的布局
C++ 中类的原创 2014-08-21 17:13:58 · 859 阅读 · 0 评论 -
Effective STL读书笔记
1、慎重选择容器类型 a.标准STL序列容器:vector、string、deque、list b.标准STL关联容器:set、 multiset、 map、 multimap c.非标准序列容器:slist、 rope d.非标准关联容器:hash_set、 hash_multiset、 hash_map、 hash_multimap e.vec原创 2014-08-07 10:20:01 · 728 阅读 · 0 评论 -
阅读C++编程思想时记录的小知识点
有待补充和纠正。。。。。原创 2014-06-07 21:40:27 · 714 阅读 · 0 评论 -
const修饰的类成员函数
在类中用const修饰的成员函数有一个作用原创 2014-07-15 18:22:35 · 1181 阅读 · 0 评论 -
static在C和C++中的用法
摘自Linux多线程服务端编程--陈硕原创 2014-05-26 21:52:50 · 750 阅读 · 0 评论 -
什么时候可以不用实例化对象就可以调用类中成员函数
对于一个类A,表达式原创 2014-06-21 15:32:38 · 10275 阅读 · 1 评论 -
继承和虚函数、虚基类的类型大小的比较
第一种情况:一个空类原创 2014-06-20 14:45:53 · 1116 阅读 · 0 评论 -
两个比较容易混淆的概念:Default Memberwise Initialization和Bitwise Copy
出处http://blog.csdn.net/zssureqh/article/details/7696231转载 2014-06-19 15:41:46 · 812 阅读 · 0 评论 -
对于内存越界访问的笔记
对于内存访问越界的操作在编译时期编译器是不会报错的,而在原创 2014-07-06 15:54:38 · 2647 阅读 · 0 评论 -
哈希算法--暴雪的mpq技术
摘自论坛:http://bbs.csdn.net/topics/300172062,先保存下来 强烈的推荐你使用暴雪的mpq技术我在个人机器上实现过4000万条字符串存储,碰撞很小需要代码的话,请留下你的邮箱这里留下我以前用过的一个小程序,稍做修给后应该可以满足你的要求:#include using namespace std; #define nTableSize原创 2014-03-11 13:23:01 · 3013 阅读 · 0 评论 -
C++中函数占位符在函数重载中的作用
今天看STL源码剖析,对于迭代器不同类型的重载函数的调用用到了函数占位符,之前没注意过,特记录下来。代码只是简单的测试,没有特别意义:#include using namespace std;int __Sum( int a, int b, int ){ cout<<"__Sum( int a, int b, int )"<<endl; return a + b;}in原创 2014-03-05 20:45:15 · 2133 阅读 · 1 评论 -
类设计者的核查表----摘自C++沉思录
这些问题都没有确切的答案,关键是要提醒你思考它们,并确认你做的事情是出于有意识的决定,而不是偶然事件。1、你的类需要一个构造函数吗?2、你的数据成员是私有的吗?3、你的类需要一个无参的构造函数吗?4、是不是每个构造函数初始化所有的数据成员5、类需要析构函数吗?6、类需要一个虚析构函数吗?7、你的类需要复制构造函数吗?8、你的类需要一个赋值操作符吗?9、你的赋值操原创 2014-02-27 17:05:56 · 849 阅读 · 0 评论 -
C++中一些新的关键字
1、C++中的动态内存分配 new ------delete Tyep *pointer = new Type; Type *pointer = new Type[N]; delete pointer; delete[] ponter; new 和 malloc 的原创 2013-09-29 10:33:30 · 841 阅读 · 0 评论 -
C++中的引用
1、引用----------变量的别名 引用和对应的变量具有相同的地址。引用在定义的时候必须用变量初始化,但是作为函数参数时,不用初始化。2、const引用-------让变量拥有只读属性 int a = 3; const int &b = a; int &b = 1; //error const int &b = 1; 正确,原创 2013-09-25 19:56:48 · 829 阅读 · 0 评论 -
c到c++的升级
c++是以c语言为基础,面向对象支持,类型加强,函数加强,异常处理。1、在C++中变量可以随时定义。2、register关键字 在C中,register关键字请求编译器将局部变量存储于寄存器中,C语言中无法获得register变量的地址。 在C++中编译器有自己的优化方式,不使用register也能做优化,并且C++中可以取得register变量的地址。当C++编译原创 2013-09-25 19:29:36 · 923 阅读 · 0 评论 -
Opencv2.4.3 在win7(64位)下vs2010的配置 亲测
环境:Win7旗舰版64位 + VS2010 + opencv2.4.3步骤1:首先下载Opencv2.4.3,下载地址:http://www.opencv.org.cn/index.php/Download,要是下不了就翻墙下吧,我的是翻墙下的,其他地方也应该有下载。步骤2:下载下来了一个名为OpenCV-2.4.3.exe的文件,进行解压,我的解压放置为D:\Program Files转载 2013-08-23 14:03:40 · 1018 阅读 · 0 评论 -
编程之美_买书问题
对于买的不同的书越多,打的折扣也就越大,由此想到可用贪心算法,将每一组尽可能多的包含不同的书,这样的折扣就越大,花的钱就越少。然而,在这里贪心算法却出现了反例,当买8本书时,分组为5+3的贪心算法却不如分组为4+4的算法花的钱少:5+3: 5*8*0.75 + 3*8*0.9 = 51.6, 4+4: 2 * 4*8*0.8 = 51.2。这是因为买三本不同的书的折扣为10%,而买4本不同的书原创 2013-07-15 16:56:36 · 983 阅读 · 0 评论 -
快速排序函数sort和qsort
sort()函数的头文件#include 形式一:sort(begin, end); 形式二:sort(begin, end, comp);begin, end 是左开右闭的区间,即[begin, end); 对于形式一,默认的排序方式的是升序,而形式而的排序方式则由comp函数来决定,测试代码如下:#include #include using nam原创 2013-06-30 21:27:06 · 1891 阅读 · 0 评论 -
effective C++之关于类成员的初始化,及默认构造函数、默认赋值构造函数和赋值函数
关于类成员的初始化和赋值的区别: 使用初始化列表初始化成员class Stu{public: Stu(int num, int ag, string na) : number(num), age(ag), name(na){}private: int number; int age; string name;};特别是原创 2013-07-11 20:01:38 · 1164 阅读 · 0 评论 -
杭电ACM——1007最近点对问题
首先介绍下二分法查找,又叫对分查找: 给定一个整数X 和整数A0,A1,A2,.............An-1, 后者已经预先排序并在内存中,求使得Ai = X 的下标i,如果X不在数据中,则返回i = -1。 一个好的策略是验证X是否是居中的元素,如果是,则答案就找到了,如果X小于居中元素,那么我们可以用同样的策略于居中居中元素左边已经排序的子序列;同理,如果X原创 2013-06-26 18:41:11 · 1848 阅读 · 0 评论 -
C++关于父类指针指向子类对象的问题
C++中,每个派生类对象都包含基类部分,所以可以将基类类型的引用绑定到派生类对象的基类部分,也可以用指向基类类型的指针指向派生类对象:#if 1#include #include using namespace std;class Stu{public: Stu(const int num, const string& na): number(num), name(na){}原创 2013-07-11 22:07:38 · 2009 阅读 · 0 评论 -
c++强制类型转换
强制转化无论从语法还是语意上看,都是c++中最难看的特征之一。但是基于c风格的转化的语义的不明确性及其一些潜在问题。强制类型转化最终还是被c++接受了。 1. static_cast运算符号 static_cast(e),stroustrup让我们可以把它看成隐含转换的显示的逆运算。这个是有一定道理的,基于隐式转化的对象类型我们可以使用static_cast转化运算符号。转载 2013-07-08 20:35:40 · 726 阅读 · 0 评论 -
杭电ACM 1002大数相加
#include#include#includeusing namespace std;string add(string a, string b){ string max, min; max = a; min = b; if( a.length() < b.length() ) { max = b; min = a; } int lmax = max.leng原创 2013-04-24 12:27:20 · 1050 阅读 · 0 评论 -
3.函数的升级
1、C++中推荐使用内联函数替换宏定义的代码片段。 内联函数声明时inline关键字必须和函数定义结合在一起,否则编译器会直接忽略内联请求。使用内联函数免去了压栈,跳转,返回操作,并且比宏定义的代码片段更安全,因为它有参数检查和返回类型的检查,也没有宏的副作用。但是,C++编译器不一定准许内联函数的请求,内联函数的实现机制是使用符号表。 内联函数的限制: 1原创 2013-09-28 22:32:41 · 756 阅读 · 0 评论