C++
judgejames
这个作者很懒,什么都没留下…
展开
-
SQL根据两个字段排序
order by condition1 desc, condition2 desc;按条件1和条件2降序的规则,优先执行condition1 desc;order by condition1 asc, condition2 asc;按条件1和条件2降序的规则,优先执行condition1 asc;order by condition1 desc, condition2...原创 2019-07-04 15:17:25 · 7851 阅读 · 0 评论 -
大小写字母转化
1. toupper(); /* 转化为大写 */QString data = "abc";for(int i = 0; i < data.size(); ++i) data[i].toupper(); //data == "ABC";2. tolower(); /* 转化为小写 */同理...原创 2019-06-25 14:30:26 · 530 阅读 · 0 评论 -
判断大小写字母、判断数字
1. isalpha判断一个字符是否为字母,如果是则返回非零,否则返回零。QString data = "a1";qDebug() << data[0].isalpha(); /* 打印非0 */qDebug() << data[1].isalpha(); /* 打印0 */2. isalnum判断一个字符是否为数字或者字母,是否属于a~z|...原创 2019-06-25 14:24:36 · 5853 阅读 · 2 评论 -
单例模式总结
单例模式的简单理解:单例模式 只允许创建一个对象(只可以实例一次),因此节省内存,加快对象访问速度,因此对象需要被公用的场合适合使用,如C/S模型中获取服务器接口等等。 通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便控制实例的个数并节约系统资源。如果希望某个类的对象只能存在一个,那么单例模式是最好的方案。【单例模式优缺点】【优点】1. 单例...原创 2019-02-21 12:39:55 · 405 阅读 · 0 评论 -
总结迭代器失效的几种情况
迭代器失效一般分为三种情况(根据底层数据结构):数组型 链表型 树型数据结构。 数组型数据结构:该数据结构的元素是分配在连续的内存中,insert和erase操作,都会使得删除点和插入点之后的元素变动位置,所以,插入点和删除掉之后的迭代器全部失效,也就是说insert(*iter)和erase(*iter)之后进行iter++是错误的。解决方法:erase(*iter)的返回值是...原创 2019-02-25 17:05:39 · 2842 阅读 · 0 评论 -
C++哪些函数不能声明为虚函数
什么样的函数不能声明为虚函数?不能被继承的函数。 不能被重写的函数。1)普通函数普通函数不属于成员函数,是不能被继承的。普通函数只能被重载,不能被重写,因此声明为虚函数没有意义。因为编译器会在编译时绑定函数。而多态体现在运行时绑定。通常通过基类指针指向子类对象实现多态。2)友元函数友元函数不属于类的成员函数,不能被继承。对于没有继承特性的函数没有虚函数的说法。3)...原创 2019-02-25 11:37:29 · 2223 阅读 · 2 评论 -
完全二叉树与满二叉树的区别
满二叉树满二叉树:指深度为k且有2^k-1个结点的二叉树,如上图。 完全二叉树完全二叉树:当二叉树的深度为h时,它的h层节点必须都是连续靠左并不可隔开的(满二叉树也符合),并且1~h-1层的结点数都达到最大个数(即1~h-1层为一个满二叉树)。...原创 2019-02-21 21:16:43 · 31356 阅读 · 5 评论 -
运行时错误:terminate called after throwing an instance of 'std::logic_error'
terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_S_construct NULL not valid如图: 主要原因:对一个空指针进行操作。 例如:char *p = NULL;Json::Value val;Json::Reade...原创 2018-11-30 18:56:40 · 18415 阅读 · 1 评论 -
八大排序之冒泡排序
简述冒泡排序(Bubble Sort),通过遍历整个数据段和交换完成排序,每次比较两个数据,如果他们的顺序错误则进行交换,直到没有数据再需要进行交换,则说明该数列已经排序完成。 原理冒泡排序算法的原理如下:从第一个元素开始,比较相邻的两个元素,如果前面的比后面的大则进行交换。然后第二个元素和第三个元素比较,依次...... 直到对最后一对处理完之后,即倒数第二个和倒数第一个比...原创 2018-10-30 17:31:55 · 128 阅读 · 0 评论 -
剑指offer---求1+2+3+...+n
题目描述:求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C). 样例输入:58样例输出:1536 代码如下://用递归的方法实现//两行就可以搞定class Solution {public: int Sum_Solution(int n)...原创 2018-10-24 18:35:19 · 110 阅读 · 0 评论 -
堪称最好的A*算法
如此好贴,不能不转!原文地址:http://dev.gameres.com/Program/Abstract/Arithmetic/AmitAStar.mht本文版权归原作者、译者所有,我只是转贴;如果侵害到您的权益,请联系我,我将删除本文。基本上,这文章可以说是最佳A*算法文档。极力推荐!Amit’s A star Page中译文&nb...转载 2018-10-24 17:35:57 · 1099 阅读 · 0 评论 -
剑指offer---斐波那契数列
题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........这样的一个数列被称为斐波那契数列即第n项为F(n) = F(n...原创 2018-10-25 20:09:20 · 159 阅读 · 0 评论 -
C++inline函数
一、函数简介在C/C++中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别引入了inline修饰符,表示为内联函数。栈空间就是指放置程序的局部数据(也就是函数内数据)的内存空间。 inline 定义的类的内联函数,函数的代码被放入符号表中,在使用时直接进行替换,(像宏一样展开),没有了调用的开销,效率也很高。内联函数具有一般函数的特性,它与一般函数所不同之处在于函...原创 2018-10-09 17:13:23 · 282 阅读 · 0 评论 -
Carry容器的实现
要求存放各类型的数据段(自动识别类型),不同类型的数据段可以通过拷贝构造函数模板完成拷贝,或是等号运算符重载的模板。(C++中实现)代码:#include<iostream>using namespace std;template<typename T>class Carry{public: Carry(int resize = 10);//普...原创 2018-10-02 16:53:45 · 793 阅读 · 0 评论 -
写时拷贝的实现(针对C++的String类)
一、写时拷贝fork之后,父子进程共享所有的数据区域,但是内核将这些区域设为只读,只有在父子进程中任意一个进程试图修改数据(局部、全局、堆区)时,内核才会将所要修改的数据所在的页直接拷贝出来作为属于子进程的空间(注意不是拷贝所有数据,仅仅拷贝所要修改数据所在的那一页)。拷贝的内容在.heap段。所以子进程的数据空间并不是在fork时复制出来的,并且在没有修改数据之前,子进程和父进程的空间是相同...原创 2018-09-24 18:20:00 · 317 阅读 · 0 评论 -
C++运算符重载
一、运算符重载C++中运算符重载允许将标准运算符运用在自己定义的类的对象,包括对象之间的运算等等。二、运算符重载的类型1、成员函数的重载2、友缘函数的重载三、运算符重载规则1、不能有新的运算符2、运算符重载后自身的优先级以及结合规则不变3、不能重载运算符有:作用域解析运算符 ::条件运算符 ?;直接成员访问运算符 .运算符 sizeof四、运算符重载特点1、提高了代码的...原创 2018-09-24 13:06:39 · 184 阅读 · 0 评论 -
C++绑定类
定义绑定类的方法及作用如下:class A{public: void show(int val){cout&lt;&lt;"void show(int val):::::::::::::"&lt;&lt;val&lt;&lt;endl;} char* show1(char* val){ cout &lt;&lt; &am原创 2018-09-13 22:36:24 · 697 阅读 · 0 评论 -
C++ string类的简单实现
class CString{public: CString(); CString(const char * str);//普通构造函数 CString(const CString &amp;amp;amp;amp;src);//拷贝构造函数 ~CString();//析构函数 CString operator=(const CString &amp;amp;amp;amp;src);//=运算符的构造函数 bool oper...原创 2018-09-19 17:41:16 · 314 阅读 · 0 评论