C/C++基础
文章平均质量分 59
Fields_Of_Gold
佛为心道为骨儒为表大度看世界技在手能在身思在脑从容过生活.
展开
-
字符串匹配算法
一、简介文本信息可以说是迄今为止最主要的一种信息交换手段,而作为文本处理中的一个重要领域——字符串匹配,就是我们今天要说的话题。(原文还特意提及文本数据数量每18个月翻一番,以此论证算法必须要是高效的。不过我注意到摩尔定律也是18个月翻番,这正说明数据的增长是紧紧跟随处理速度的,因此越是使用高效的算法,将来待处理的数据就会越多。这也提示屏幕前的各位,代码不要写得太快了……) 字符串匹配原创 2013-03-15 11:42:11 · 902 阅读 · 0 评论 -
C++类的静态成员【需要注意的几点】
静态数据成员的使用方法和注意事项如下:1、静态数据成员在定义或说明时前面加关键字static。2、静态成员初始化与一般数据成员初始化不同。静态数据成员初始化的格式如下: ::= 这表明: (1) 初始化在类体外进行,而前面不加static,以免与一般静态变量或对象相混淆。 (2) 初始化时不加该成员的访问权限控制符private,publ原创 2013-05-27 11:18:49 · 922 阅读 · 0 评论 -
assert断言
#include //#define NDEBUG#include int main(){ int n=9; assert(n!=9);//assert()括号中的表达式if true则不会出现端断言错误,assertion failed system("pause"); return 0;}void assert( int expression );assert的作用是现计原创 2013-05-28 09:18:29 · 679 阅读 · 0 评论 -
C++的异常处理
一、什么是异常处理 一句话:异常处理就是处理程序中的错误。二、为什么需要异常处理,以及异常处理的基本思想 C++之父Bjarne Stroustrup在《The C++ Programming Language》中讲到:一个库的作者可以检测出发生了运行时错误,但一般不知道怎样去处理它们(因为和用户具体的应用有关);另一方面,库的用户知道怎样处理这些错误,但却转载 2013-07-09 14:06:28 · 750 阅读 · 0 评论 -
读取位置时发生访问冲突
出现这种错误主要是访问了不属于自己的内存空间,大概出错有以下几种原因:1、数组分配的内存空间比较小,然后给数组赋的值比较大。例如:char buf[5];buf = "哒哒哒哒哒哒哒哒哒哒哒哒哒哒哒哒哒哒哒哒哒";这样就会出现错误。解决方法:给数组分配更大的内存空间,例如:char buf[1024];2、句柄或指针在使用前被释放分析:内存冲突问题经原创 2013-07-03 16:31:25 · 16266 阅读 · 0 评论 -
C++命名空间<转>
熟练掌握C/C++语言,熟悉Windows开发平台,能熟练运用MFC自主编开发出一些应用程序;熟练掌握SQL语句,对数据库有很好的认识,能熟练使用SQL Server2000软件;熟练掌握JAVA语言,熟悉J2ME对手机软件开发一定的基础;深入理解面向对象的思想,并能熟练应用于具体的程序设计开发中;熟悉Unix/Linux下C语言的编程以及常用的命令,熟悉汇编语言;熟悉网络的T转载 2013-08-05 09:20:18 · 696 阅读 · 0 评论 -
STL 简介,标准模板库
这篇文章是关于C++语言的一个新的扩展——标准模板库的(Standard Template Library),也叫STL。 当我第一次打算写一篇关于STL的文章的时候,我不得不承认我当时低估了这个话题的深度和广度。有很多内容要含盖,也有很多具体描述 STL的书。因此我重新考虑了一下我原来的想法。我为什么要写这篇文章,又为什么要投稿呢?这会有什麽用呢?有再来一篇关于STL的文章的必要吗?转载 2013-08-05 15:00:44 · 748 阅读 · 0 评论 -
C++ Unicode SBCS 函数对照表
C++ Unicode SBCS 函数对照表,以备日后查阅GenericSBCSUNICODETCHARcharwchar_t_TEOFEOFWEOF_TINTintwint_t_TSCHAR原创 2013-08-22 13:23:20 · 911 阅读 · 0 评论 -
C/C++通过WMI和系统API函数获取获取系统硬件配置信息
前段时间由于项目需要,要求做一个服务器的实时性能监控(CPU、内存、网络利用率等)和读取服务器的硬件配置参数的接口供项目组使用,就是一个类似于鲁大师之类的东东吧... 当然第一想法肯定是利用Windows提供的系统标准API函数来完成所需的功能,当然这也应该是当前最理想最有效率的选择了。但是如果你对API编程不是很熟练的话...那就相当蛋疼了!你知道用API可以做到但是不知道用哪个AP原创 2013-08-16 14:53:17 · 2244 阅读 · 0 评论 -
STL学习小结
STL就是Standard Template Library,标准模板库。这可能是一个历史上最令人兴奋的工具的最无聊的术语。从根本上说,STL是一些“容器”的集合,这些“容器”有list, vector,set,map等,STL也是算法和其它一些组件的集合。这里的“容器”和算法的集合指的是世界上很多聪明人很多年的杰作。是C++标准库的一个重要组成部分,它由Stepanov and Lee等人最原创 2013-08-16 11:45:06 · 689 阅读 · 0 评论 -
C/C++笔试题(很多)
微软亚洲技术中心的面试题!!!1.进程和线程的差别。线程是指进程内的一个执行单元,也是进程内的可调度实体.与进程的区别:(1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位(2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行(3)拥有资源:进程是拥有资源的独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源. (4)系转载 2013-10-10 09:35:51 · 6388 阅读 · 1 评论 -
Sizeof与Strlen的区别与联系
一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所占的原创 2013-10-31 21:50:29 · 636 阅读 · 0 评论 -
struct和typedef struct彻底明白了
分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu; 于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明) 这里的Stu实际上就是原创 2014-07-10 15:03:43 · 1271 阅读 · 0 评论 -
C语言字符串处理函数
函数名: strcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #include #include int main(void) { char string[10]; char *str1 = "abcdefghi"; stpcpy(s原创 2015-03-05 15:38:32 · 893 阅读 · 0 评论 -
#ifdef __cplusplus extern "C" { #endif”的定义的含义 .
看一些程序的时候老是有“#ifdef __cplusplusextern "C" {#endif”的定义,搞搞清楚是怎么回事:Microsoft-Specific Predefined Macros__cplusplus Defined for C++ programs only. 意思是说,如果是C++程序,就使用extern "C"{而这个东东,是指在下面的函数转载 2013-04-22 10:06:00 · 707 阅读 · 0 评论 -
标准模板库STL学习总结
标准模板库就是类与函数模板的大集合。STL共有6种组件:容器,容器适配器,迭代器,算法,函数对象和函数适配器。1、容器:容器是用来存储和组织其他对象的对象。STL容器类的模板在标准头文件中定义。主要如下所示①序列容器基本的序列容器是上面图中的前三类:关于三者的优缺点主要是:A:vector矢量容器:可以随机访问容器的内容,在序列末尾添加或删除对象,但是因为是从尾转载 2013-04-18 22:01:05 · 702 阅读 · 0 评论 -
朴素字符串匹配——算法导论
序字符串T = abcabaabaadac, 字符串P = abaa,判断P是否是T的子串,就是字符串匹配问题了,T叫做文本(Text),P叫做模式(Pattern). 算法思想朴素的字符串匹配过程可以形象的看成一个包含模式的“模板”P沿文本T移动,同时对每个位移注意模板上的字符是否与文本中的相应字符相等。外层循环的次数最多为len(s) - len(p),内层循环的次数最多为le原创 2013-03-15 15:21:32 · 961 阅读 · 0 评论 -
KMP字符串模式匹配算法
原理就不说了,学算法的都知道这基本上是查找一个字符串是否在另一个串中位置比较快的算法。代码如下:[cpp] #include #include #define MAXSIZE 100 int next[MAXSIZE]; int S_lenth,D_lenth; char source[MAXSIZE],detination[100]; void原创 2013-03-15 15:32:14 · 676 阅读 · 0 评论 -
C++面试题
1.是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态?virtual修饰符会被隐形继承的。private 也被集成,只事派生类没有访问权限而已virtual可加可不加子类的空间里有父类的所有变量(static除外)同一个函数只存在一个实体(inline除外)子类覆盖它的函数不加virtual ,也能实现多态。在子类的空间转载 2013-04-07 10:20:29 · 871 阅读 · 0 评论 -
C/C++面试题大汇总
最近因为找工作,收集了很多C语言方面方面的面试题以及答案。现在新工作搞定了,决定把这些资料发出来,送给有需要的朋友,免得再象我一样到处搜寻,实在辛苦。发布之前先申明两点: 1 所有资料来自网络(主要是CSDN),本人只是收集和转发。 2 所有问题解答(尤其是代码)只是参考,不保证正确。先发基本问题,再发编程问题..........想成为嵌入式程序员应知道的0x10个转载 2013-04-07 10:27:26 · 841 阅读 · 0 评论 -
堆和栈的区别
栈是随函数被调用时分配的空间 栈上分配的空间是临时的,在函数退出后将被系统释放,不会造成内存泄露,不得用delete或free操作,因为栈的空间小所以在栈上不能获得大量的内存块,一般最大也就不到10M 堆是在整个进程的未分配空间中分配的内存,由malloc或new分配,一般必须由free或delete释放。堆上可以分配大量的内存,只要你的机器吃得消。 一转载 2013-04-10 15:57:21 · 641 阅读 · 0 评论 -
C语言中宏的一些特别用法
转载C语言中如何使用宏C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。 关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量 通过替换后在其左右各加上一个双引号。比如下面代码中的宏:#define WARN_IF(转载 2013-04-10 16:05:48 · 693 阅读 · 0 评论 -
C语言中#line 宏说明
c语言里有个很少用到的宏 #line,这个宏通常是和__LINE__宏一起使用的,__LINE__宏表示当前c语句在源文件中的行数,以前也只是在书上看到过,写过一些实例小程序,实际应用中并无使用。 好了,废话不说,举个例子来说明 #line宏的使用: 1:#include "iostream" 2:#line 100转载 2013-04-10 16:06:53 · 2169 阅读 · 0 评论 -
static和const的比较和解释
static 是c++中很常用的修饰符,它被用来控制变量的存储方式和可见性,下面我将从 static 修饰符的产生原因、作用谈起,全面分析static 修饰符的实质。 static 的两大作用: 一、控制存储方式: static被引入以告知编译器,将变量存储在程序的静态存储区而非栈上空间。 1、引出原因:函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间转载 2013-04-10 16:11:57 · 676 阅读 · 0 评论 -
C++ 值传递、指针传递、引用传递详解
最近写了几篇深层次讨论数组和指针的文章,其中提到了“C语言中,所有非数组的形式参数传递均以值传递形式”数组和指针背后——内存角度语义"陷阱"---数组和指针而关于值传递,指针传递,引用传递这几个方面还会存在误区, 所有我觉的有必要在这里也说明一下~下文会通过例子详细说明哦值传递:形参是实参的拷贝,改变形参的值并不会影响外部实参的值。从被调用函数的角度来说,值传递是单向的(实转载 2013-04-10 15:54:30 · 678 阅读 · 0 评论 -
c++中const用法
关键字:Const,Const函数,Const变量,函数后面的Const 1. Bool fa(const A& a); 这里的const是说明变量a在函数Bool fa(const A& a)内不能被修改。 2. const A& fb(int i); 这里是说函数const A& fb(int i) 的返回值不能被修改 3. void fc() const; 这个是说函数voi转载 2013-04-10 16:02:26 · 610 阅读 · 0 评论 -
链表常见笔试题
链表的一些常见笔试面试问题总结及代码 先什么也不说,假设链表节点的数据结构为:struct node{int data;struct node* next;};创建单链表的程序为:struct node* create(unsigned int n){//创建长度为n的单链表assert(n > 0);node*转载 2013-04-10 16:09:34 · 739 阅读 · 0 评论 -
[C++]拷贝构造函数和赋值运算符重载
原文作者:冯明德;补充说明:Shosh重点:包含动态分配成员的类 应提供拷贝构造函数,并重载"="赋值操作符。 以下讨论中将用到的例子: class CExample{public: CExample(){pBuffer=NULL; nSize=0;} ~CExample(){delete pBuffer;} void Init(int转载 2013-04-10 16:14:50 · 795 阅读 · 0 评论 -
堆栈详解(数据与内存中的存储方式) .
char* r = "hello word!";char b[]="hello word!"*r = 'w';*b='w';其实应该是语法错误,可是VC++6.0没有警告或者错误,r指向的是文字常量区,此区域是编译的时候确定的,并且程序结束的时候自动释放的, *r = 'w';企图修改文字常量区引起错误,b的区别在于其空间是在栈上分配的,因此没有错误。const转载 2013-04-22 09:32:23 · 1273 阅读 · 0 评论 -
C语言字符串操作总结大全(超详细)
本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串原创 2015-03-09 10:05:06 · 983 阅读 · 0 评论