- 博客(5)
- 资源 (21)
- 问答 (1)
- 收藏
- 关注
原创 跟我学c++中级篇———pimpl
一、何方神圣——pimplPrivate Implementation,私有化实现。在c++中,由于语言本身的限制,没有纯粹的接口定义。这就导致了在接口的使用上很多c++的人员都是随心而动。有用抽象类的纯虚函数的,有直接用C类型的接口的。有干脆提供接口类的…不一而足吧。根据实际情况,实事求是的选择才是一个好的标准。在c++中,大量的头文件的安全包含,本身就是一个重要的问题,普通的重复定义这都是小问题。一些莫名的,甚至头文件的顺序都引起的“血案”也是经常发生的。正所谓,代码量大了,啥情况都遇得到。而使用P
2020-07-26 09:39:56 554
原创 算法和数据结构之快速排序
一、排序接着造火箭,面试对排序一般是不会放过的,而在所有的排序中,快排勿庸置疑是问的最多的。而在实际应用中,这个排序确实也是在实际工程中用的最多的之一。快速排序是什么呢?快速排序就是通过排序数据进行比较和交换位置来实现数据排序的目的。快速排序分为经典快速排序和随机快速排序。前者是指定固定的基准数据(最左或者最右即第一个或最后一个),随机快速排序是随机指定任一一个。快速排序的时间复杂度为O(nlogn),最坏情况下,即分治后一侧为1,另外一侧为n-1,时间复杂度为O(n^2),空间复杂度为O(nlogn)
2020-07-18 23:43:19 860
原创 使用智能指针的两次深坑
在完善别人的代码,苦逼进行中。然后,发现了一个问题。只是随手改了一下,把数据结构体的=赋值操作改成了拷贝动作 memmove,然后测试的就说,程序大概率会崩溃。仔细看了下,报下面的错误:“异常: 0xC0000005: 写入位置 0xxxxxxxxx 时发生访问冲突”.下断点跟进去,发现是在析构函数里释放赋值的那个指针操作时崩溃的。当时根本都没有怀疑到拷贝动作的改变。只是认为可能是没有初始化指针,造成了重复释放。或者说释放了一个野指针。查来查去,结果发现,还真没有,干活的小姑娘还是相当细心的
2020-07-18 22:31:11 733
原创 自定义智能指针的注意点
问题:是不是在XP上可用?1、==的判断,NULL要在前,否则报无法INT与THIS匹配2、注意点和->3、重载的注意点,类对象第一个函数可省略但其实是默认this,如果想做非本对象为第一位的,必须用友元的来操作。4、没有==则LIST无法用5、智能指针的Reset是-1,如果为0则释放,不要混了一定释放。6、如果自定义=(拷贝),则一定要清除自己。7、为什么STL的为直接赋0没问题,自己写的有问题。有一个小程序,用到了智能指针,挺好用的。但是业务需要,在XP上使.
2020-07-18 22:27:06 344
原创 C++小知识——语法糖和纯虚函数的注意点
语法糖,英文是syntactic sugar,原来一直没注意它的意思,只是固定的将它定义成了一个类似固定符号的东西,在《C++编程思想》,上面把运算符的重载这种语法糖,翻译成了“语法上的方便”,而在词典上一般译成“语法上的甜头”,顾名思义,这才真得明白为什么大老外把这类东西叫语法糖,包括在C++11中对Lambada表达式也称做是语法糖,在语法上给你个小好处,小甜头,让你吃着方便,品着顺心。原来这才是人家真正的意思。看几个语法糖的例子://lambda表达式,自动返回值和显示指定auto x = [](
2020-07-12 11:02:34 360
大数阶乘算法的一个例子
2018-10-06
朗新WEBSERVER接口(南网和天津电网)
2009-03-16
AndroidStudio使用NDK生成静态库的方法?
2015-08-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人