设为首页 加入收藏

TOP

C++入门学习笔记(四)
2016-12-06 20:24:46 】 浏览:1909
Tags:入门 学习 笔记
为命令行参数,由操作系统在启动程序时初始化,其返回值传递给操作系统。实参:可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。实参和形参的区别:空白或占位符1.函数的形参列于函数声明中,在函数定义的函数体内使用。当函数调用时,形参(任何种类的)是一类将被填充的空白或是占位符。用来填充形参2.实参是用来填充形参的。当函数被调用时,实参列在函数名后面的括号里。执行函数调用时,实参被传递给形参。传值调用和引用调用3.传值调用和引用调用指的是用于参数传递过程中的一种机制。传值调用中,只使用了实参的值。传值调用机制里,形参是一个局部变量,其初始值为相应实参的值。在引用调用机制里,将实参的地址传递给形参,从表面上看是以实参变量取代形参,因此任何发生在形参上的改变实际上都发生在实参变量上。15、运算符重载运算符重载本质上就是函数的重载,是函数重载的特殊形式(函数名为运算符号)。C++语言中允许程序员重新定义运算符的语义,这一机制称作运算符重载。16、正则表达式正则表达式又称正规表达式,常规表示法,计算机科学的一个概念。正则表达式使用单个字符串来描述。匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式常用来检索、替换那些符合摸个模式的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。给定一个正则表达式和另一个字符串,我们可以达到如下的目的: 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”); 可以通过正则表达式,从字符串中获取我们想要的特定部分。正则表达式的特点是: 灵活性、逻辑性和功能性非常的强; 可以迅速地用极简单的方式达到字符串的复杂控制。 对于刚接触的人来说,比较晦涩难懂。由于正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用,小到著名编辑器EditPlus,大到Microsoft Word、Visual Studio等大型编辑器,都可以使用正则表达式来处理文本内容。17、MFCMFC应用程序有自己特殊的运行机制,一般包括以下5步:调用CWinApp的构造函数。 程序入口函数WinMain接收控制。 WinMain调用应用程序类的InitInstance函数。 WinMain进入消息循环。 WinMain退出,程序终止。1、 应用程序类CTestApp从MFC的CWinApp类派生,对应的源文件Test.h和Test.cpp,为应用程序的入口,负责应用程序对象的定义与创建、程序的启动、命令行参数处理、主框架窗口的创建、文档模板的创建、文件菜单的处理、About对话框的创建和显示等。2、 主框架窗口类CmainFrame从MFC的CFrameWnd或CMDIFrameWnd派生,对应的源文件为MainFrm.h和MainFrm.cpp。为应用程序的界面,包含菜单栏、工具栏和状态栏,负责子框架窗口或视图类的创建。3、 字框架窗口类CchildFrame从MFC的CMDIChildWnd类派生,只有MDI程序才有,对应的源文件为ChildFram.h和ChildFrm.cpp,包含子框架窗口的标题条和边框,负责视图类的创建。 4、 文档类CtestDoc从MFC的CDocument类派生,对应的源文件为TestDoc.h和TestDoc.cpp,负责文件读写和数据处理。5、 视图类CTestView一般从MFC的CView类派生,也可以冲CScrollView等其他MFC视图类派生,对应的源文件TestView.h和TestView.cpp。对应于框架窗口的客户区,负责数据的显示、图形的绘制和用户的交互等。18、map的用法1、Map的简介Map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。2、map的功能自动建立Key - value的对应。key 和 value可以是任意你需要的类型。根据key值快速查找记录,查找的复杂度基本是Log(N),如果有1000个记录,最多查找10次,1,000,000个记录,最多查找20次。 快速插入Key - Value 记录。 快速删除记录 根据Key 修改value记录。 遍历所有记录。3、使用map使用map得包含map类所在的头文件 #include//STL头文件没有扩展名.hMap对象是模板类,需要关键字和存储对象两个模板参数,Std::mappersonal;这样就定义了一个用int作为索引,并拥有相关联的指向string的指针;为了使用方便,可以对模板类进行一下类型定义。Typedef mapUDT_MAP_INT_CSTRING;

UDT_MAP_INT_CSTRING enumMap;4、在map中插入元素改变map中的条目非常简单,因为map类已经对[]操作符进行了重载enumMap[1] = "One";

enumMap[2] = "Two";

.....这样非常直观,但存在一个性能的问题。插入2时,先在enumMap中查找主键为2的项,没发现,然后将一个新的对象插入enumMap,键是2,值是一个空字符串,插入完成后,将字符串赋为”Two”; 该方法会将每个值都赋为缺省值,然后再赋为显示的值,如果元素是类对象,则开销比较大。我们可以用以下方法来避免开销:enumMap.insert(map :: value_type(2, "Two"))19、删除文件到底如何查找文件呢我们需要一个结构体和几个大家可能不太熟悉的函数。这些函数和结构体在的头文件中,结构体为struct _finddata_t ,函数为_findfirst、_findnext和_fineclose。具体如何使用,我会慢慢讲来~首先讲这个结构体吧~ struct _finddata_t ,这个结构体是用来存储文件各种信息的。说实话,这个结构体的具体定义代码,我没有找到,不过还好,文档里面在_find里有比较详细的成员变量介绍。我基本上就把文档翻译过来讲吧:unsigned atrrib: 文件属性的存储位置。它存储一个unsigned单元,用于表示文件的属性。文件属性是用位表示的,主要有以下一些:_A_ARCH(存档)、 _A_HIDDEN(隐藏)、_A_NORMAL(正常)、_A_RDONLY(只读)、_A_SUBDIR(文件夹)、_A_SYSTEM(系统)。这些都是在中定义的宏,可以直接使用,而本身的意义其实是一个无符号整型(只不过这个整型应该是2的几次幂,从而保证只有一位为 1,而其他位为0)。既然是位表示,那么当一个文件有多个属性时,它往往是通过位或的方式,来得到几个属性的综合。

首页 上一页 1 2 3 4 5 6 7 下一页 尾页 4/11/11
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇数独 约束求解 C++ and Python 下一篇C++面向对象高效编程:数据抽象

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目