C++
WQP_Ya_Ping
程序员的自我修养。。。
展开
-
错误与异常处理入门
C++错误与异常处理 概念: 1.错误:分为编译时的错误和运行时的错误。 ①编译时的错误:编译时的错误主要是语法错误,比如:句尾没有加分号,括号不匹配,关键字错误等,这类错误比较容易修改,因为编译系统会指出错误在第几行,什么错误。 ② 运行时的错误: 运行时的错误则不容易修改,因为其中的错误是不可预料的,或者可以预料但无原创 2015-08-18 16:31:48 · 478 阅读 · 0 评论 -
KMP算法
KMP算法理解 最近在学习字符串的模式匹配算法,有简单的BF算法,大家自行百度很容易理解,但效率并不高。 KMP算法,引入了一个next数组,效率明显提升,大家可以访问上方蓝色链接进行了解。KMP算法理解起来有点难度,网上教程又让人眼花缭乱,所以分享一个容易理解的给大家!转载 2016-05-04 20:59:34 · 326 阅读 · 0 评论 -
STL学习之路(2)
承接上一篇,我们继续来感受STL的奇妙://栈的实现# include <iostream># include <string># include <iterator># include <stack>using namespace std;int main(){ stack<char>s; string str; cin>>str; for(string:原创 2016-05-14 13:14:12 · 356 阅读 · 0 评论 -
C++编译时多态之运算符重载
C++编译时多态之运算符重载 面向对象多态包括:重载多态、强制多态、包含多态、参数多态 1.不可重载的运算符: 2.类属关系运算符“”.“” 3.成员指针运算符“”.*“” 4.作用域运算符“”::“” 5.三目运算符“”?:“” 点击上方链接可进行更多了解……原创 2016-05-14 14:24:42 · 381 阅读 · 0 评论 -
笔试面试题8--内联函数和宏的区别
面试例题:内联函数和宏的差别是什么?答案:内联函数和普通函数相比可以加快程序运行的速度,因为不需要中断调用,在编 译的时候内联函数可以直接被镶嵌到目标代码中。而宏只是一个简单的替换。 内联函数要做参数类型检查,这是内联函数跟宏相比的优势。 inline是指嵌入代码,就是在调用函数的地方不是跳转,而是把代码直接写到那里去。 对于短小的代码来说inline增加空间消耗换来的是效率提高,这方面和宏原创 2016-05-14 14:50:32 · 582 阅读 · 0 评论 -
笔试面试题9--指针和引用的区别
面试例题1:指针和引用的差别? 答案: (1)非空区别。在任何情况下都不能使用指向空值的引用。一个引用必须总是指向某 些对象。因此如果你使用一个变量并让它指向一个对象,但是该变量在某些时候也可能不指 向任何对象,这时你应该把变量声明为指针,因为这样你可以赋空值给该变量。相反,如果 变量肯定指向一个对象,例如你的设计不允许变量为空,这时你就可以把变量声明为引用。 不存在指向空值的引用这个事原创 2016-05-14 14:53:24 · 1361 阅读 · 0 评论 -
笔试面试题10--特殊指针
面试例题1:写出函数指针、函数返回指针、const指针、指向const的指针、指向const的const指针 指针。 函数指针: void (*f)() 函数返回指针: void * f() const指针: const int* 指向const的指针: int *const 指向const的const指针: const int *const原创 2016-05-14 14:57:35 · 407 阅读 · 0 评论 -
笔试面试题12--字符串拷贝、链接、比较无库函数实现
面试案例1:字符串拷贝函数问题。(不调用库函数)char *strcpy(char *strDest, const char *strSrc){ assert((strDest != NULL) && (strSrc != NULL)); char *address = strDest; while((*strDest ++ = *strSrc ++) != '\0');原创 2016-05-14 15:37:52 · 453 阅读 · 0 评论 -
map/multimap/hashmap的区别
Map: STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据映射处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的.原创 2016-10-21 20:03:01 · 1844 阅读 · 0 评论 -
STL中Sort()源码剖析
点击打开链接Introspective Sorting(内省式排序算法)。它是一种混合式的排序算法,集成了堆排序、插入排序、快速排序三种算法各自的优点:在数据量很大时采用正常的快速排序,此时效率为O(logN)。一旦分段后的数据量小于某个阈值,就改用插入排序,因为此时这个分段是基本有序的,这时效率可达O(N)。在递归过程中,如果递归层次过深,分割行为有恶转载 2016-10-21 20:25:44 · 428 阅读 · 0 评论 -
STL学习之路
STL泛型程序设计,C++的一大特色,可编写不依赖具体数据类型的程序。知识点: 1. STL四大组件(容器、迭代器(泛化的指针)、算法、函数对象(泛化的函数)) 2. 基本容器:顺序容器(Vector、deque、list)关联容器(set、multiset、map、multimap) 3. 迭代器:输入迭代器(读)、输出迭代器(写)、前向迭代器(读和写)、双向迭代器原创 2016-05-13 21:53:13 · 552 阅读 · 0 评论 -
笔试面试题3——虚函数的工作原理
3.虚函数的工作原理详见::http://blog.csdn.net/hackbuteer1/article/details/7883531原创 2016-05-12 09:52:37 · 456 阅读 · 0 评论 -
大整数加减乘除问题
详见链接:http://www.ityuedu.com/article/5779445281/原创 2016-05-12 14:54:35 · 509 阅读 · 0 评论 -
STL之vector容器详解
vector 容器vector是C++标准模版库(STL,Standard Template Library)中的部分内容。之所以认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单的说:vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。使用vector容器之前必须加上头文件:#include;vector属于std命名域的内容,因此需要通过命名限定:usin转载 2015-08-17 15:28:23 · 342 阅读 · 0 评论 -
编程规范
编程规范http://www.codeceo.com/article/c-cpp-code-standards.html转载 2016-03-11 22:04:14 · 355 阅读 · 0 评论 -
C++运行时多态之虚表
C++三大特点是封装、继承、多态,这次我们来聊聊多态的情况之一“运行时多态”。运行时多态的实现靠虚函数,虚函数的具体实现又依赖虚函数表(虚表)。所以,虚表才是关键所在,下面从四种情况总结一下虚表的具体实现:基类Base:{virtual +f();virtual +g;virtual +h;} 1.一般继承(无虚函数覆盖)原创 2016-03-11 22:51:57 · 564 阅读 · 0 评论 -
8大排序算法详解
8大排序算法详解转载 2016-03-12 10:03:29 · 397 阅读 · 0 评论 -
什么函数才能成为虚函数?
一个类中将所有的成员函数都尽可能地设置为虚函数总是有益的。 设置虚函数须注意: 1:只有类的成员函数才能说明为虚函数; 2:静态成员函数不能是虚函数; 3:内联函数不能为虚函数; 4:构造函数不能是虚函数; 5:析构函数可以是虚函数,而且通常声明为虚函数。原因:内联函数需要在编译阶段展开,而虚函数是运行时动态绑定的,编译时无法展开; 构造函数在进行调用时还不原创 2016-05-11 14:55:23 · 1459 阅读 · 0 评论 -
笔试面试题1
1.以下函数中,和其它函数不属于一类的是(C)A.fwrite B. putc C.pwrite D.putchar E.getline F.scanf解析:(1).size_t fwrite(const void * ptr, size_t size, size_t nmemb, FIL原创 2016-05-12 09:20:36 · 977 阅读 · 0 评论 -
笔试面试题2
2.假定CSomething是一个类,执行下面这些语句之后,内存里创建了__个CSomething对象。CSomething a();CSomething b(2);CSomething c[3];CSomething &ra = b;CSomething d=b;CSomething *pA = c;CSomething *p = new CSomething(4);原创 2016-05-12 09:46:14 · 296 阅读 · 0 评论 -
面试笔试题4--如何判断主机是大端小端?
方法1#includeint main(void){ unsigned int x = 0x12345678; unsigned char *p = (unsigned char*)&x; printf("%0x,%0x,%0x,%0x\n",p[0],p[1],p[2],p[3]); return 0;} //输出结果为:78 56原创 2016-05-12 14:35:24 · 330 阅读 · 0 评论 -
面试笔试题5--大整数表示问题?
5. 大整数845678992357836701转化成16进制表示,最后两位字符是? A. AB B. EF C. 8B D. 9D解析:它要16进制最后两位,也就是二进制最后八位。那么最后八位怎么求?很简单,除二取余。这样从后往前写就是10111001。。。。二进制嘛,倒着写,最后两位位应该是100111原创 2016-05-12 14:44:22 · 1028 阅读 · 0 评论 -
C++11新标准
http://yangtaixiao.blog.163.com/blog/static/42235441201448101853955/转载 2016-10-21 20:33:41 · 682 阅读 · 0 评论