C++
文章平均质量分 65
GanonYou
这个作者很懒,什么都没留下…
展开
-
《C++大学教程》学习笔记(四)
《C++大学教程》学习笔记(四)1.零零散散条件运算符可以这么用: grade >= 60 ? cout << “Passed” : cout << “Failed”;else摇摆问题,简而言之就是编译器始终会把else同它之前最近的if联系起来,例子可以看书。if或者if…else语句的任一部分只能包含“一条”语句,如果想要包含多条语句,那就要...原创 2018-02-08 22:00:34 · 1174 阅读 · 0 评论 -
2014年复试程序设计题
2014年1、用递归编程求 ack(int m, int n),定义似乎是 ack(0,n) = n+1; ack(m,0)=m+1; ack(m,n) = ack(ack(m-1),ack(n-1));#include <iostream>using namespace std;int ack(int m, int n){ if (m == ...原创 2018-03-01 20:03:58 · 2386 阅读 · 1 评论 -
2015年复试程序设计题
2015年第一题代码,不保证正确:#include <iostream>#include <iomanip>#include <cmath>using namespace std;int main(){ double x; cin >> x; double ans = 1; dou...原创 2018-03-02 11:48:17 · 2473 阅读 · 1 评论 -
2016年复试程序设计题
2016年1、输入一行文本,求文本中的每个单词的长度。以 word length this 4 的格式输出下面给出代码:方法一#include <iostream>#include <iomanip>#include <string>using namespace std;...原创 2018-03-02 15:25:36 · 2985 阅读 · 0 评论 -
2017年复试程序设计题
2017年题目格式转换,从一个文件中读取日期07/21/2016,转换为以下格式July 21,2016并输出到屏幕上方法一:#include <iostream>#include <iomanip>#include <fstream>#include <string>using namespace std;int...原创 2018-03-02 15:27:00 · 2992 阅读 · 0 评论 -
《C++大学教程》学习笔记(十五)
《C++大学教程》学习笔记(十五)暂时先跳到第21章,其他内容以后有机会再看。1.字符串本章内容较为松散,同样采用列表的形式来记录getline(cin,string1); //读取一行赋值给string1string1.assign(string2);//把string2复制给string1string1.append(string2);//把string2...原创 2018-02-20 12:47:03 · 407 阅读 · 0 评论 -
C++补充笔记(一)
重读教科书,发现一些在《C++大学教程》中忽视的内容,以此来记录。第一章1.1面向对象面向对象程序设计中最突出的特征是“封装性、继承性和多态性”,最重要的概念是类和对象。 其中,类与对象是抽象与具体的关系,类是支持封装的工具,对象是封装的实体。1.2多态性多态性分为静态多态性和动态多态性。静态多态性通过静态联编实现,具体表现为函数重载和运算符重载。动态多态性通...原创 2018-03-04 17:50:00 · 377 阅读 · 0 评论 -
C++补充笔记(二)
第二章2.1命名空间命名空间的定义,与类的定义不同,命名空间的定义是不用以分号结尾的。 比如说namespace one{ int a = 200; int b = 10; }在其他地方,只要通过one::aone::b就可以使用命名空间中的内容2.2内联函数C语言中,对于一些功能简单的函数,有时通过宏定义来代替,以减少程序执行...原创 2018-03-04 18:12:40 · 327 阅读 · 0 评论 -
《C++大学教程》学习笔记(十六)
《C++大学教程》学习笔记(十六)本节并没有参考Deitel的书,而是参考了本科教材以及郑莉的书。1.模版1.1基本知识若一个程序的功能是对任意类型的数据作同样的处理,则将所处理的数据类型说明为参数,就可以把这个程序改写为模版。模版提供了重用程序源代码的有效方法,方便了大规模的软件开发。C++中的模版分为类模版(class template)和函数模版(function tem...原创 2018-02-25 21:21:03 · 441 阅读 · 0 评论 -
C++补充笔记(三)
第三章3.1知识点public、private和protected被称为访问权限修饰符或访问控制修饰符。每个成员函数都有一个隐含的this 指针,用来指向当前对象。3.2深拷贝和浅拷贝系统为每个类提供的默认构造函数都是浅拷贝的。当浅拷贝复制指针类型的数据成员时,不会生成动态空间,只会复制一个指针值。当析构时,就有可能出现指针悬挂的问题。通过自定义拷贝构造函数实现深拷贝...原创 2018-03-05 12:08:05 · 301 阅读 · 0 评论 -
C++补充笔记(四)
第四章4.1静态(static)成员与常(const)成员如果想要不依赖对象访问静态数据成员,就要使用静态成员函数。静态成员函数是没有this指针的。常数据的初始化只能在构造函数的初始化列表中进行,即:class Circle{private: const double PI; ...public: Circle:PI(3.1415926){ ...原创 2018-03-05 12:48:18 · 276 阅读 · 0 评论 -
C++补充笔记(五)
第五章5.1类与类之间的关系类与类之间主要有三种关系,分别是:组合:一个类包含了其他类依赖:一个类使用了其他类继承:一个类继承了其他类类之间还有聚合、关联等关系。关于类的依赖,给出一个例子://骰子类class Dice{ ... ...};//玩家类class Player{public: void play(Dice ...原创 2018-03-05 17:35:03 · 304 阅读 · 0 评论 -
C++补充笔记(六)
第六章6.1运算符重载再实践发现自己对运算符重载掌握得仍旧不熟练,故通过复数(Complex)类的实践来巩固一下。下面给出文件结构与具体代码: Complex.hpp文件:#ifndef Complex_hpp#define Complex_hpp#include <iostream>using namespace std;class Complex{...原创 2018-03-05 17:47:29 · 329 阅读 · 0 评论 -
不要把using声明放在头文件中!!!
今天看书时看到一行“不应该将using指令和using声明放在头文件中”,遂大惊。上网查阅了很多资料,发现果真如此,但之前的编程中基本都在头文件中加入了using声明,全部改是不可能的了,只是以后要注意这一点了。这篇文章是用来提醒自己的。参考博客: http://blog.csdn.net/u012234115/article/details/40019945 http://blog....原创 2018-03-06 10:20:35 · 3218 阅读 · 0 评论 -
LearnOpenGL学习笔记(一):在Xcode下搭建GLEW、GLFW及GLAD环境
简介LearnOpenGL学习笔记(一)1.环境配置1.1 安装GLEW与GLFW1.2下载GRAD1.3 配置工程2.测试程序LearnOpenGL学习笔记(一)1.环境配置系统是macOS,在Xcode下搭建GLEW、GLFW及GLAD的环境。1.1 安装GLEW与GLFW在终端中通过brew安装GLEW与GLFW:brew install glewbrew install gl...原创 2018-09-18 11:35:12 · 991 阅读 · 0 评论 -
分治法习题整理
分治法1.POJ3714题目:The system was charged by N nuclear power stations and breaking down any of them would disable the system.The general soon started a raid to the stations by N special agents who wer...原创 2019-01-01 20:28:56 · 1839 阅读 · 0 评论 -
动态规划法习题整理
动态规划法1.POJ1458求最长公共子序列问题(LCS),自底向上打印一个矩阵即可。代码:#include &lt;iostream&gt;#include &lt;string&gt;using namespace std;//自底向上的动态规划求最长公共子序列(LCS),也可以用递归int main(){ int LCS[1000][1000]; stri...原创 2019-01-01 20:31:56 · 671 阅读 · 1 评论 -
2013年复试程序设计题
2013年1. 编写程序,计算 1~20000 之间的质数,输出时要求每行 10 个数。穷举的代码就不贴出了,下面给出一个时间复杂度O(n)的方法: 质数是从2开始讨论的,不妨先假设所有数都是质数,而任何一个数(包括质数)的 n(n>1) 倍一定不是质数,所以每访问一个数,就把它所有的n倍置为非质数。我们用一个vector< bool > numbers来保存所有数的情...原创 2018-03-01 14:38:13 · 2125 阅读 · 3 评论 -
不用正则表达式统计文本中字符(包括标点)出现的次数
如题,其实根本不用正则表达式。#include <iostream>#include <fstream>#include <string>#include <map>using namespace std;int main(){ ifstream is("/Users/.../test2.txt"); if (!...原创 2018-03-30 20:18:26 · 665 阅读 · 0 评论 -
通过C++中的正则表达式来统计文件中每个字符出现的次数
题目从文件读取字符串 然后统计字符串里面各个字符的数量。代码#include <iostream>#include <fstream>#include <string>#include <regex>#include <map>using namespace std;int main(){ if...原创 2018-03-30 20:18:39 · 1651 阅读 · 0 评论 -
《C++大学教程》学习笔记(五)
《C++大学教程》学习笔记(五)for循环、do…while循环的基本运用很简单,不再赘述。1.计算复利问题计算复利,会用到cmath头文件内的pow函数,pow函数接受两个double类型的实参。使用流操纵符格式化输出,除了之前学过的setprecision和fixed外,本节引入了setw流操纵符,具体用法如下:cout << setw(4) <<...原创 2018-02-09 16:25:57 · 476 阅读 · 1 评论 -
《C++大学教程》学习笔记(六)
《C++大学教程》学习笔记(六)1.数学库函数包含在< cmath >头文件中的数学函数,整理一下: 函数 描述 ceil(x) 向上取整 floor(x) 向下取整 fabs(x) 取绝对值 log(x) lnX log10(x) lgX pow(x,y) x^y sqrt(...原创 2018-02-10 17:15:04 · 428 阅读 · 0 评论 -
《C++大学教程》学习笔记(七)
《C++大学教程》学习笔记(七)1.Array的使用1.1简介与使用以往在C++中想到数组,基本还是C语言那套,这次就来好好学一下Array的使用方法。 Array对象的声明很简单,只要:array <类型,大小> array对象名 即可,比如说array <int,2> c;下面我们编写一个简单的例子来使用它://array实例#inc...原创 2018-02-11 20:13:34 · 429 阅读 · 0 评论 -
《C++大学教程》学习笔记(八)
《C++大学教程》学习笔记(八)1.指针基本向函数传递参数有三种方式:按值传递使用引用参数的按引用传递使用指针参数的按引用传递用const修饰指针,这里有三种情况要区分:const int * ptr; //指向const数据的非const指针,ptr可以改变int * const ptr; //指向非const数据的const指针...原创 2018-02-12 00:40:50 · 392 阅读 · 1 评论 -
《C++大学教程》学习笔记(一)
《C++大学教程》学习笔记(一)借由准备复试的机会,准备把C++完完整整的再学习一遍,希望这本书能让我对C++有个全新的认识。1.汇编、编译、翻译三个经常模糊的概念,其实很容易就区分: 将汇编语言转换成机器语言的翻译程序就是汇编器 将高级语言转换成机器语言的翻译程序就是编译器还有解释器,比较特殊,多用于脚本语言。2.C++程序的六个阶段编辑预处理(比如#de原创 2018-02-07 11:33:31 · 951 阅读 · 1 评论 -
2010年复试程序设计题
2010年1、输入 n 个十进制数转换成二进制写到文件,n 是随机得到的考虑到对于负数的二进制表示有补码、反码等,所以这里默认输入的整数都是正数。将十进制转换为二进制字符串的功能是通过自定义函数完成的。 下面是具体代码://2010_1:输入 n 个十进制数转换成二进制写到文件,n 是随机得到#include <iostream>#include <st...原创 2018-02-27 13:12:52 · 5085 阅读 · 3 评论 -
《C++大学教程》学习笔记(九)
《C++大学教程》学习笔记(九)1.Time类实例研究1.1包含防护在开始之前,先说明一个重要的C++软件工程概念:在头文件中使用“包含防护”,从而避免头文件中的代码被多次包含到同一源代码文件中的情况。通过在头文件中加入预处理指令#ifndef,#define,#endif即可构成“包含防护”。同时,在预处理指令 #ifndef 和 #define 中,应使用大写的头文件名,并...原创 2018-02-13 19:34:24 · 680 阅读 · 0 评论 -
2011年复试程序设计题
2011年1、 编写一个程序,利用下面的公式计算 ex 的值,精确到10^-10 。直接上代码:#include <iostream>#include <cmath>#include <iomanip>using namespace std;int main(){ double x = .0; cout <...原创 2018-02-27 20:48:06 · 3140 阅读 · 1 评论 -
《C++大学教程》学习笔记(十)
《C++大学教程》学习笔记(十)1.使用标准库中string类的重载运算符下面这个实例给出了几个string类的重载运算符,事实上,几乎能想到的所有运算符都已经被string重载了。通过这个实例,我们可以对运算符重载有个初步的认识,下面是实例代码://使用string类中的重载运算符#include <iostream>#include <string&g...原创 2018-02-15 01:13:46 · 568 阅读 · 0 评论 -
《C++大学教程》学习笔记(二、三)
《C++大学教程》学习笔记(二、三)第二章太基础,唯一学到的就是#include也是预处理,之前一直疏忽了。 下面是第三章。1.类接口与实现的分离良好的软件工程要做到成员函数对于客户代码是隐藏的(即信息隐藏),所以在第三章中书中对于GradeBook类给了这样一个实例:GradeBook.h:使用函数原型定义类的借口GradeBook.cpp:在独立的源文件中实现成员函数...原创 2018-02-08 10:49:56 · 619 阅读 · 0 评论 -
《C++大学教程》学习笔记(十一)
《C++大学教程》学习笔记(十一)1.继承1.1实例本章的内容不多,主要讨论的是面向对象编程(OOP)的另外一个关键特征:继承(inheritance)。继承是软件复用的一种方式,其中新类(“派生类”)吸收了现有类(“基类”)的数据和行为,并使这些类具有其他的新性能。由于书中的给出的实例实在是太为复杂,所以我自己捣鼓了一个实现继承的样例:基类为交通工具Vehicle,派生类...原创 2018-02-16 22:11:02 · 915 阅读 · 0 评论 -
《C++大学教程》学习笔记(十二)
《C++大学教程》学习笔记(十二)1.多态性1.1简介C++ 支持多态性。所谓多态性是指由于继承而关联在一起的不同的类的对象,对于相同的成员函数调用作出不同反应的一种能力。多态使我们能“通用化编程”,而不是“特殊化编程”。 多态性是通过virtual 函数和动态绑定实现的,关于这一点,有两种绑定方式要加以区分:通过基类指针或引用调用虚函数的,在执行时进行动态绑定(迟绑定...原创 2018-02-17 16:19:36 · 1254 阅读 · 0 评论 -
2012年复试程序设计题
2012年1.编写程序,求最小公倍数。很简单,直接贴代码:#include <iostream>using namespace std;int main(){ int a,b; cin >> a >> b; if(a > b){ int temp = a; a = b; ...原创 2018-02-28 13:29:36 · 2491 阅读 · 0 评论 -
《C++大学教程》学习笔记(十三)
《C++大学教程》学习笔记(十三)本章的内容较为零散,适合用列表的方式去整理,在需要的时候查阅即可。1.头文件< iostream >头文件声明了所有I/O流操作所需的基础服务< iomanip >头文件声明了参数化流操作符< fstream >头文件声明了文件处理服务2.标准流对象cin:istream实例,连接到标准输入设备c...原创 2018-02-18 00:38:53 · 715 阅读 · 1 评论 -
《C++大学教程》学习笔记(十四)
《C++大学教程》学习笔记(十四)为了在C++ 中执行文件处理,必须包含头文件< iostream >和< fstream >。C++ 没有在文件上强加任何结构,所以程序员必须自己设计文件结构来满足应用程序的需要。 本章主要讨论了 顺序文件 和 随机存取文件 。1.顺序文件1.1创建并打开文件要想创建并打开一个文件,可以通过下面这句语句:ofstream...原创 2018-02-19 16:10:37 · 623 阅读 · 0 评论 -
奇偶排序的C++实现
题目从文件读入一个字符串,对其进行奇偶排序,使字母都按顺序排列。 奇偶排序:每个奇数的字符开始,依次比较,若a[i-1]>a[i]或者a[i]>a[i+1]则交换;再从偶数的字符开始,如此循环往复,直至交换完毕。代码#include <iostream>#include <string>#include <fstream>us...原创 2018-03-14 19:52:50 · 3492 阅读 · 0 评论 -
C++中虚函数的陷阱
先来看看下面这段代码:#include <iostream>using namespace std;class A{public: virtual void print(){ cout << "A::print()\n"; }};class B : public A{public: void print(int...原创 2018-03-30 20:18:53 · 299 阅读 · 0 评论 -
贪心法习题整理
贪心法1.POJ 2393题目 :The cows have purchased a yogurt factory that makes world-famous Yucky Yogurt. Over the next N (1 <= N <= 10,000) weeks, the price of milk and labor will fluctuate weekly suc...原创 2019-01-01 20:34:58 · 936 阅读 · 2 评论