C/C++学习笔记
文章平均质量分 77
DetailAI
这个作者很懒,什么都没留下…
展开
-
算法的时间复杂度
参考1:http://blog.csdn.net/zolalad/article/details/11848739原创 2017-06-09 19:05:52 · 698 阅读 · 0 评论 -
多态与虚函数-编程题#2(C++程序设计第6周)
编程题#2来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)注意: 总时间限制: 1000ms 内存限制: 65536kB描述下面程序的输出结果是:destructor Bdestructor A请完整写出 class A。 限制条件:不得为 class A 编写构造函数。1234567891原创 2017-03-06 17:15:17 · 1146 阅读 · 0 评论 -
多态与虚函数-编程题#1(C++程序设计第6周)
编程题 #1来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)注意: 总时间限制: 1000ms 内存限制: 65536kB下面程序的输出结果是:A::FunC::Do请填空:1234567891011121314151617181920212223242526272829303132#i原创 2017-03-06 17:14:23 · 793 阅读 · 0 评论 -
标准模板库STL
本章内容为coursera课程C++程序设计中第八周的课件的整理泛型程序设计C++ 语言的核心优势之一就是便于软件的重用C++中有两个方面体现重用:1.面向对象的思想:继承和多态,标准类库;2.泛型程序设计(generic programming) 的思想:模板机制,以及标准模板库 STL简单地说就是使用模板的程序设计法。将一些常用的数据结构(比如链表,数组,二叉树原创 2017-03-08 21:12:54 · 397 阅读 · 0 评论 -
list 和 deque
本章内容为coursera课程C++程序设计中第八周的课件的整理list 容器list容器之sort函数list容器的迭代器不支持完全随机访问,故不能用标准库中sort函数对它进行排序list自己的sort成员函数list classnameclassname.sort(compare); //compare函数可以自己定义classname.sort(); /原创 2017-03-08 22:13:37 · 560 阅读 · 0 评论 -
vector
本章内容为coursera课程C++程序设计中第八周的课件的整理vector可变长的动态数组必须包含头文件 #include 支持 随机访问迭代器• 根据下标随机访问某个元素时间为常数• 在尾部添加速度很快• 在中间插入慢所有STL算法 都能对vector操作vector的成员函数例1:#include #include using na原创 2017-03-08 22:09:17 · 353 阅读 · 0 评论 -
运算符重载-自加/自减运算符的重载
自加/自减运算符的重载自加 (++)/自减(--) 运算符有前置/后置 之分前置运算符前置运算符作为一元运算符重载• 重载为成员函数:T & operator++();T & operator--();• 重载为全局函数:T & operator++(T &);T & operator—(T &);++obj, obj.operator++(), o原创 2017-03-01 20:56:42 · 1677 阅读 · 0 评论 -
输入和输出
本章内容为coursera课程C++程序设计中第七周的课件的整理与输入输出流操作相关的类istream是用于输入的流类, cin就是该类的对象。ostream是用于输出的流类, cout就是该类的对象。ifstream是用于从文件读取数据的类。ofstream是用于向文件写入数据的类。iostream是既能用于输入,又能用于输出的类。fstream 是既能从文件读取数据原创 2017-03-08 15:42:30 · 322 阅读 · 0 评论 -
指针与二维数组练习-计算矩阵边缘元素之和(C程序设计进阶 第5周)
编程题#1:计算矩阵边缘元素之和来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)注意: 总时间限制: 1000ms 内存限制: 65536kB描述输入一个整数矩阵,计算位于矩阵边缘的元素之和。所谓矩阵边缘的元素,就是第一行和最后一行的元素以及第一列和最后一列的元素。输入第一行为整数k,表示有k组数据。原创 2017-02-25 15:03:11 · 3248 阅读 · 0 评论 -
指针与二维数组练习-二维数组右上左下遍历(C程序设计进阶 第5周)
编程题#2: 二维数组右上左下遍历来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)注意: 总时间限制: 1000ms 内存限制: 65536kB描述给定一个row行col列的整数数组array,要求从array[0][0]元素开始,按从左上到右下的对角线顺序遍历整个数组。输入输入的第原创 2017-02-25 15:05:43 · 1531 阅读 · 0 评论 -
指针与二维数组练习-文字排版(C程序设计进阶 第5周)
编程题#3:文字排版来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)注意: 总时间限制: 1000ms 内存限制: 65536kB描述给一段英文短文,单词之间以空格分隔(每个单词包括其前后紧邻的标点符号)。请将短文重新排版,要求如下:每行不超过80个字符;每个单词居于同一行上;在同一行的单词之间以一个空原创 2017-02-25 15:07:43 · 1068 阅读 · 0 评论 -
多态与虚函数-编程题#3(C++程序设计第6周)
编程题 #3来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)注意: 总时间限制: 1000ms 内存限制: 65536kB描述下面的程序输出结果是:A::FunA::DoA::FunC::Do请填空:12345678910111213141516171819202122232原创 2017-03-06 17:16:12 · 1118 阅读 · 0 评论 -
运算符重载-编程题#1(C++程序设计第4周)
编程题 #1来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)注意: 总时间限制: 1000ms 内存限制: 65536kB描述下面程序的输出是:3+4i5+6i请补足Complex类的成员函数。不能加成员变量。12345678910111213141516171819#include #in原创 2017-03-03 21:29:52 · 2543 阅读 · 0 评论 -
C++ 编译器工作原理
写的极好,参考:https://github.com/xuelangZF/CS_Offer/blob/master/C%2B%2B/Compiler.md原创 2017-05-19 16:49:17 · 738 阅读 · 0 评论 -
静态成员变量和静态成员函数
本章内容均为coursera中C++程序设计课件的整理基本概念静态成员:在说明前面加了static关键字的成员。class CRectangle{private:int w, h;static int nTotalArea; //静态成员变量static int nTotalNumber;public:CRectangle(int w_,int h_);~CRect原创 2017-03-01 21:23:58 · 470 阅读 · 0 评论 -
string类
本章内容为coursera课程C++程序设计中第七周的课件的整理string类string 类 是一个模板类, 它的定义如下:typedef basic_string string;使用string类要包含头文件 string对象的初始化:string s1("Hello"); // 一个参数的构造函数string s2(8, ‘x’); // 两个参数的原创 2017-03-08 14:55:54 · 390 阅读 · 0 评论 -
运算符重载-流插入运算符和流提取运算符的重载
流插入运算符和流提取运算符的重载问题cout cout 是在 iostream 中定义的ostream 类的对象。“ 考虑,怎么重载才能使得cout 有可能按以下方式重载成 ostream类的成员函数:void ostream::operator<<(int n){…… //输出n的代码return;}cout cout 怎么重载才能原创 2017-03-01 20:40:34 · 1227 阅读 · 0 评论 -
虚函数和多态
本章内容为coursera课程C++程序设计中第六周的课件的整理一、虚函数和多态 在类的定义中,前面有 virtual 关键字的成员函数就是虚函数。class base {virtual int get() ;};int base::get(){ }virtual 关键字只用在类定义里的函数声明中,写函数体时不用。多态的表现形式一派生类的指针可以赋给基类指针。原创 2017-03-03 10:23:57 · 478 阅读 · 0 评论 -
常量对象、常量成员函数和常引用
本章内容均为coursera中C++程序设计课件的整理常量对象如果不希望某个对象的值被改变,则定义该对象的时候可以在前面加const关键字。class Demo{private :int value;public:void SetValue() { }};const Demo Obj; // 常量对象常量成员函数在类的成员函数说明后面可以加const关键原创 2017-03-01 22:04:38 · 2043 阅读 · 0 评论 -
继承和派生
本章内容为coursera课程C++程序设计中第五周的课件的整理一、继承和派生继承和派生的概念继承:在定义一个新的类B时,如果该类与某个已有的类A相似(指的是B拥有A的全部特点),那么就可以把A作为一个基类,而把B作为基类的一个派生类(也称子类)。派生类是通过对基类进行修改和扩充得到的。在派生类中,可以扩充新的成员变量和成员函数。派生类一经定义后,可以独立使用,不依原创 2017-03-03 09:42:50 · 570 阅读 · 0 评论 -
类模板
本章内容为coursera课程C++程序设计中第七周的课件的整理类模板• 在定义类的时候给它一个/多个参数• 这个/些参数表示不同的数据类型在调用类模板时, 指定参数, 由编译系统根据参数提供的数据类型自动产生相应的模板类C++的类模板的写法如下:template class 类模板名{成员函数和成员变量};类型参数表的写法就是: class 类型参数1原创 2017-03-08 14:22:35 · 927 阅读 · 0 评论 -
运算符重载-编程题#3(C++程序设计第4周)
编程题 #3来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)注意: 总时间限制: 1000ms 内存限制: 65536kB描述写一个二维数组类 Array2,使得下面程序的输出结果是:0,1,2,3,4,5,6,7,8,9,10,11,next0,1,2,3,4,5,6,原创 2017-03-03 21:32:53 · 1449 阅读 · 0 评论 -
运算符重载-编程题#2(C++程序设计第4周)
编程题 #2来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)注意: 总时间限制: 1000ms 内存限制: 65536kB描述下面的MyInt类只有一个成员变量。MyInt类内部的部分代码被隐藏了。假设下面的程序能编译通过,且输出结果是:4,1请写出被隐藏的部分。(您写的内容必须是能全部放进 MyInt原创 2017-03-03 21:31:22 · 1102 阅读 · 0 评论 -
函数模板
本章内容为coursera课程C++程序设计中第七周的课件的整理泛型程序设计(Generic Programming)算法实现时不指定具体要操作的数据的类型泛型 — 算法实现一遍 -> 适用于多种数据结构优势: 减少重复代码的编写大量编写模板, 使用模板的程序设计• 函数模板• 类模板函数模板为了交换两个int变量的值, 需要编写如下Swap函数:v原创 2017-03-08 14:10:34 · 346 阅读 · 0 评论 -
文件操作
本章内容为coursera课程C++程序设计中第七周的课件的整理数据的层次位 bit字节 byte域/记录:将所有记录顺序地写入一个文件叫做顺序文件例如: 学生记录int ID;char name[10];int age;int rank[10];文件和流顺序文件 — 一个有限字符构成的顺序字符流C++标准库中: ifstream原创 2017-03-08 09:58:33 · 527 阅读 · 0 评论 -
递归习题—扩号匹配问题(C程序设计进阶 第3周)
编程题#4:扩号匹配问题来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)注意: 总时间限制: 1000ms 内存限制: 65536kB描述在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号原创 2017-02-24 21:49:28 · 1427 阅读 · 0 评论 -
[Coursera 计算导论与C语言基础] 第十周作业(上)
最近在利用空闲时间跟Coursera上北京大学的程序设计与算法专项课程,一共7门课程,这是第一门课计算导论与C语言基础。编程题#1:求字母的个数来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)注意: 总时间限制: 1000ms 内存限制: 65536kB描述在一个字符串中找出元音字母a,e,i,o,u出现的次数。输入原创 2017-02-19 14:41:28 · 1663 阅读 · 0 评论 -
[Coursera 计算导论与C语言基础] 期末编程测试
最近在利用空闲时间跟Coursera上北京大学的程序设计与算法专项课程,一共7门课程,这是第一门课计算导论与C语言基础。编程题#1:判断闰年来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)注意: 总时间限制: 1000ms 内存限制: 65536kB描述判断某年是否是闰年。输入输入只有一行,包含一个整数a(0原创 2017-02-20 20:39:36 · 1838 阅读 · 0 评论 -
运算符重载-赋值运算符的重载
本章内容均为coursera中C++程序设计课件的整理赋值运算符 ‘=’ 的重载赋值运算符两边的类型可以不匹配:• 把一个 int类型变量赋值给一个 Complex对象• 把一个 char * 类型的字符串赋值给一个字符串对象赋值运算符 “=” 只能重载为成员函数举例:编写一个长度可变的字符串类String• 包含一个char * 类型的成员变量指向动态分配的存原创 2017-03-01 17:08:11 · 972 阅读 · 0 评论 -
寻找下标(C程序设计进阶 第2周)
编程题#1:寻找下标注意: 总时间限制: 1000ms 内存限制: 65536kB描述已知一个整数数组x[],其中的元素彼此都不相同。找出给定的数组中是否有一个元素满足x[i]=i的关系,数组下标从0开始。举例而言,如果x[]={-2,-1,7,3,0,8},则x[3] = 3,因此3就是答案。输入第一行包含一个整数n (0 第二行包含n个整数,依次表示原创 2017-02-23 21:59:11 · 772 阅读 · 0 评论 -
类和对象-编程题#1(C++程序设计第3周)
编程题#1来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)注意: 总时间限制: 1000ms 内存限制: 65536kB描述下面程序输出的结果是:05请填空:12345678910111213#include using namespace std;class A {public:原创 2017-02-28 16:24:15 · 2761 阅读 · 0 评论 -
类和对象-编程题#2(C++程序设计第3周)
拷贝构造函数1.只有一个参数, 即对同类对象的引用。形如 X::X(X&)或X::X(const X &)二选一。不允许有形如 X::X(X)的构造函数。3.如果没有定义复制构造函数,那么编译器生成默认复制构造函数。默认的复制构造函数完成复制功能。如果定义的自己的复制构造函数,则默认的复制构造函数不存在。复制构造函数起作用的三种情况:1)当用一个对象去初始化同类的另原创 2017-02-28 16:29:14 · 1130 阅读 · 0 评论 -
类和对象-编程题#3(C++程序设计第3周)
编程题 #3来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)注意: 总时间限制: 1000ms 内存限制: 65536kB描述下面程序的输出结果是:5,55,5请填空:123456789101112131415161718#include using namespace std;clas原创 2017-02-28 16:44:17 · 2086 阅读 · 0 评论 -
类型转换构造函数
我们可以把数字当最对象赋给另一个对象,这样在对该赋值表达式进行计算时,首先对数字进行类型转换,同时判断该类的构造函数的参数是否与数字类型匹配,假如匹配则调用构造函数创建一个临时对象,跟着将该临时对象赋给赋值操作符左边的对象,最后调用析构函数进行删除临时对象。示例代码如下:#include using namespace std; class A { pub转载 2017-02-28 16:39:36 · 580 阅读 · 0 评论 -
拷贝构造函数
拷贝构造函数1.只有一个参数, 即对同类对象的引用。形如 X::X(X&)或X::X(const X &)二选一。不允许有形如 X::X(X)的构造函数。3.如果没有定义复制构造函数,那么编译器生成默认复制构造函数。默认的复制构造函数完成复制功能。如果定义的自己的复制构造函数,则默认的复制构造函数不存在。复制构造函数起作用的三种情况:1)当用一个对象去初始化同类的另原创 2017-02-28 16:38:56 · 468 阅读 · 0 评论 -
简单的学生信息处理程序实现(C++程序设计第2周)
简单的学生信息处理程序实现来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)注意: 总时间限制: 1000ms 内存限制: 65536kB描述在一个学生信息处理程序中,要求实现一个代表学生的类,并且所有成员变量都应该是私有的。(注:评测系统无法自动判断变量是否私有。我们会在结束之后统一对作业进行检查,请同学们严格原创 2017-02-28 16:17:52 · 2190 阅读 · 0 评论 -
[Coursera 计算导论与C语言基础] 第八周作业
最近在利用空闲时间跟Coursera上北京大学的程序设计与算法专项课程,一共7门课程,这是第一门课计算导论与C语言基础。编程题#1:数字求和来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)注意: 总时间限制: 1000ms 内存限制: 65536kB描述给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数原创 2017-02-18 16:08:59 · 2673 阅读 · 0 评论 -
[Coursera 计算导论与C语言基础] 第七周作业
最近在利用空闲时间跟Coursera上北京大学的程序设计与算法专项课程,一共7门课程,这是第一门课计算导论与C语言基础。编程题#1:年龄与疾病来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)注意: 总时间限制: 1000ms 内存限制: 65536kB描述某医院想统计一下某项疾病的获得与否与年龄是否有关,需要对以前的诊断记录进原创 2017-02-17 19:24:20 · 3008 阅读 · 0 评论 -
递归习题—排队游戏(C程序设计进阶 第3周)
编程题#3:排队游戏来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)注意: 总时间限制: 1000ms 内存限制: 65536kB描述在幼儿园中,老师安排小朋友做一个排队的游戏。首先老师精心的把数目相同的小男孩和小女孩编排在一个队列中,每个小孩按其在队列中的位置发给一个编号(编 号从0开始)。然后老师告诉小朋友们,站在原创 2017-02-24 21:48:27 · 3871 阅读 · 3 评论 -
递归习题—角谷猜想(C程序设计进阶 第3周)
编程题#2:角谷猜想来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)注意: 总时间限制: 1000ms 内存限制: 65536kB描述所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整数为5,计算过程分别为16、8、4、原创 2017-02-24 21:46:25 · 4850 阅读 · 3 评论