C++ MOOC
沐漜
。懒惰,呵呵
展开
-
指针数组
指针数组:数组的元素是指针类型例: Point *pa[2];由pa[0]、pa[1]两个指针组成二维数组就是相当于由一维数组组成的二维数组,且构成二维数组的一维数组之间是依次连续存放的例: //三行三列矩阵 int line1[] = {1,0,0}; int line2[] = {0,1,0}; i原创 2015-09-15 15:01:50 · 409 阅读 · 0 评论 -
智能指针
显示的用new动态内存分配,用delete释放;这种显示的内存管理有一定的安全隐患,比如说我们忘记了释放,就会造成内存泄漏。在C++11中提供了一种叫做智能指针的指针,它对内存回收技术(对垃圾回收技术)提供了一定的支持,使得我们的程序在内存管理上更加安全一些。C++11提供智能指针的数据类型,对垃圾回收技术提供了一些支持,实现一定程度的内存管理C++11提供的智能指针,原创 2015-09-21 16:24:08 · 362 阅读 · 0 评论 -
程序设计语言的构成
语言的种类千差万别,但是,一般来说,基本成分不外四种: 数据成分,用以描述程序中所涉及的数据; 运算成分,用以描述程序中所包含的运算; 控制成分,用以表达程序中的控制构造; 传输成分,用以表达程序中数据的传输; ——计算机科学技术百科原创 2015-11-10 13:20:56 · 989 阅读 · 0 评论 -
程序题目6-1
题目描述给定一个数组a[0,...,n-1],求其最大子数组(长度>=1)和输入描述第一行一个整数n(1输出描述输出一个整数表示最大子数组和题目解读:题目是求一个给定的数组的最大子数组和,就是说一个给定的数组中,求其中连续的元素构成的多个子数组的和的最大值。因为是数组,隐含着要求元素是连续的,所以不需要考虑取出数组中的所有正数相加的这种情况。原创 2015-10-08 11:14:18 · 2112 阅读 · 0 评论 -
从问题到程序
从问题到程序没有解决方案就没有程序: 面对一个问题,你必须要先找到解决这个问题的方法,然后才有可能写出相应的程序。解决方案只是开始: 写程序前先构想好程序的结构。 1.没有想好解决方案,不要急于动手写程序。 2.有了解决方案以后,可以按照“先粗后细、先抽象后具体”的办法,先有程序的轮廓,如有必要可以借助“建模工具”画一些图,而后再动手写程序;原创 2015-11-08 21:34:26 · 703 阅读 · 0 评论 -
指针类型的函数
若函数的返回值是指针,该函数就是指针类型的函数指针函数的定义形式:存储类型 数据类型 *函数名(){ //函数体语句}注意:· 不要将非静态局部地址用作函数的返回值1、错误的例子:在子函数中定义局部变量后将其地址返回给主函数,就是非法地址· 返回的指针要确保在主调函数中是有效、合法的地址1、正确的例子:主函数中定义的数组,在子函原创 2015-09-16 15:52:11 · 845 阅读 · 0 评论 -
深层复制与浅层复制
复制对象时需要复制构造函数默认的复制构造函数实现的是对象的数据成员之间一一对应的这种复制,这种复制被称为浅层复制。浅层复制:实现对象间数据元素的一一对应复制。原创 2015-09-27 11:10:31 · 2523 阅读 · 0 评论 -
字符串
C风格字符串 字符串常量:例:“program” 各字符连续、顺序存放,每个字符占一个字节,最后以'\0'占一个字节结尾,相当于一个隐含创建的字符常量数组 “program”出现在表达式中,表示这一char数组的首地址 首地址可以赋给char常量指针 const char *STRING1 = "program";原创 2015-10-03 15:06:37 · 788 阅读 · 0 评论 -
以指针作为函数参数
什么时候需要用指针做参数1、需要数据双向传递时(引用也可以达到此效果)2、需要传递一组数据,只传首地址运行效率比较高 实参是数组名时形参可以是指针用指针作为函数的参数,可以使被调函数通过形参指针存取主调函数中实参指针指向的数据,实现数据的双向传递。原创 2015-09-16 09:30:57 · 771 阅读 · 0 评论 -
VECTOR对象
vector是C++标准模版库的一个类模版,它的作用是什么呢?为什么我们要使用vector呢?vector其实就像一个数组一样好用,但是它比我们自己定义的数组更加好用,使用起来更加安全,更加方便。vector对象名不能当做数组的头指针使用。vector对象为什么需要vector?封装任何类型的动态数组,自动创建和删除。数组下标越界检查在程序例题申请和释放动态数组原创 2015-09-22 16:55:27 · 818 阅读 · 0 评论 -
移动构造-C++11
移动构造:移动构造是C++11标准中提供的一种新的构造方法。在现实中有很多这样的例子,我们将钱从一个账号转移到另一个账号,将手机SIM卡转移到另一台手机,将文件从一个位置剪切到另一个位置…… 移动构造可以减少不必要的复制,带来性能上的提升。有些复制构造是必要的,我们确实需要另外一个副本;而有些复制构造是不必要的,我们可能只是希望这个对象换个地方,移动一下而已。在C++11原创 2015-09-28 12:16:24 · 20424 阅读 · 9 评论 -
用指针访问数组元素
数组是一组连续存储的同类型数组,可以通过指针的算术运算,使指针一次指向数组的各个元素,进而可以遍历数组。定义指向数组元素的指针: ·定义与赋值: 例:int a[10],*pa; pa = &a[0];或 pa = a; 等效的形式: 1、经过上述定义及赋值后: *pa原创 2015-09-15 12:40:17 · 1207 阅读 · 0 评论 -
重载函数与重载操作符
重载函数: 出现在相同作用域中的两个函数,如果具有相同的名字而形参表不同,则称为重载函数。注: 1. 重载函数的返回值可以不同,但函数不能仅仅基于不同的返回类型而实现重载。 2. 判断函数重载是否正确,只看参数个数,不看返回值类型。 3. 任何程序都仅有一个main函数的实例,main函数不能重载。重载和作用域 在函数中局部声明的名原创 2017-05-05 15:52:45 · 454 阅读 · 0 评论