
C++
ERROR无限
这个作者很懒,什么都没留下…
展开
-
内联函数
/*内联函数的运行速度比常规函数稍快,代价是需要占用更多的内存。内联函数是指用inline关键字修饰的函数。在类内定义的函数被默认成内联函数。使用内联函数的时候要注意:1.递归函数不能定义为内联函数2.内联函数一般适合于不存在while和switch等复杂的结构且只有1~5条语句的小函数上,否则编译系统将该函数视为普通函数。3.内联函数只能先定义后使用,否则编译系统也会把它认为是普通函数原创 2016-04-01 21:45:00 · 214 阅读 · 0 评论 -
实现类成员函数
///stock00.h#ifndef STOCK00_H_INCLUDED#define STOCK00_H_INCLUDED#includeclass Stock{private: std::string company; long shares; double share_val; double total_val; void set_t原创 2016-05-31 15:05:37 · 366 阅读 · 0 评论 -
C++ 文件输入输出 (一)
#include #includeusing namespace std;int main() //程序从这里开始运行{ ofstream SaveFile("love.txt"); SaveFile << "Woohyun oppa salanghei!!!\n"; SaveFile.close(); return 0;}///这个程序将在当前运行目原创 2016-05-18 20:56:02 · 537 阅读 · 0 评论 -
C++ 文件输入输出(二)
///输入/输出流///到目前为止,所展示的只是单一的打开文件的途径:要么为读取而打开,要么为写入而打开。///但文件还可以以其它方式打开。迄今,你应当已经认识了下面的方法:///ifstream OpenFile(“love.txt”);///这可不是唯一的方法!以上的代码创建一个类ifstream的对象,并将文件的名字传递给它的构造函数。///但实际上,还存在有不少的重载的构造函原创 2016-05-19 11:35:49 · 314 阅读 · 0 评论 -
C++ 文件输入输出(三)
///假如你打算设置不止一个的打开模式标志,只须使用OR操作符或者是 | ,像这样:///ios::ate | ios::binary///fstream File(“cpp-home.txt”,ios::in | ios::out);///实际上,这只是一个声明语句。我将在下面数行之后给你一个代码示例。但此时我首先想提及一些你应当///知道的内容。///上面的代码创建了一个名为“原创 2016-05-19 11:50:51 · 309 阅读 · 0 评论 -
类的构造函数和析构函数
///类的数据成员是私有的,所以不能使用常规的赋值方法,像结构体那种的。。。。。。///一般来讲。最好在创建对象的同时,对它进行初始化。///例如: Stock gift; gift.buy(10, 22.22); 这种情况下,company 没被赋值。///程序声明对象时, 自动调用构造函数。///一定不能将类成员名称用作构造函数的参数名。///构造函数的参数表示的不是类成员原创 2016-06-01 20:50:02 · 360 阅读 · 0 评论 -
this 指针
///方法涉及两个对象时,要使用this指针///一般来说,所有的类方法都将this指针设置为调用它的对象的地址。///每个成员函数(包括构造函数和析构函数)都有一个this指针,this指针///指向调用对象,若方法需要引用整个调用对象,则可使用表达式*this,///现在可以将*this作为调用对象的别名。/*const Stock & Stock::topval(const St原创 2016-06-02 12:53:29 · 398 阅读 · 0 评论 -
C++ 文件输入输出(四)
///检测输入/输出的状态标志///标志(flags)”标志在C++中的含义。///C++中负责的输入/输出的系统包括了关于每一个输入/输出操作的结果的记录信息。这些当前的状态信息///被包含在///io_state类型的对象中。io_state是一个枚举类型(就像open_mode一样),以下便是它包含的值(译注:表中///第一列为枚举值的名称,第二列为该值相应含义的描述):/*原创 2016-05-20 21:19:11 · 466 阅读 · 0 评论 -
自己乱写的文件输入输出例程 乱到极致 心脏不好的勿入
/*#include #includeusing namespace std;int main(){ fstream File("test.txt",ios::in | ios::out); File << "Hi! choiminho!"; //将“Hi!”写入文件 ,为什么不识别我家珉豪欧巴呢,因为他太帅了!开玩笑啦!因为空格呦。 ///static cha原创 2016-05-21 15:36:47 · 492 阅读 · 0 评论 -
稀疏矩阵的压缩存储与快速转置 三元组法 类与对象实现
贴个主函数 这酸爽~#include "TSMatrix.h"#include"Triple.cpp"#include"TSMatrix.cpp"void transMatrix(TSMatrix a,TSMatrix &b);///求三元组顺序表方式,转置矩阵简单的方法,将稀疏矩阵a转置为bvoid quickTransMatrix(TSMatrix a,TSMatrix &b);/原创 2016-10-22 15:00:05 · 1258 阅读 · 0 评论 -
神啊
我要慢慢研读~#ifndef LISTDEFINE_H_INCLUDED#define LISTDEFINE_H_INCLUDED#include "pubuse.h"template class LinkList{public: struct node { T date; node* next; node* pr原创 2016-12-02 19:52:22 · 223 阅读 · 0 评论 -
C++ 指针 new delete
///C++指针:/// *操作符两边的空格是可选的。传统的,C程序员使用这种格式:int *ptr;这强调/// *ptr是一个int型的值,而C++程序员一般用这种格式:int* ptr;这强调的是:int*/// 是一种类型,是指向int的指针/// int* p1,p2;将创建一个指针p1,和一个整型的p2。对于每个指针变量名,都需要使/// 用一个*/// 在C+原创 2016-09-26 20:23:54 · 456 阅读 · 0 评论 -
dynamic memory allocation
/// dynamic memory allocation#include #includeusing namespace std;class baseDMA{private: char *label; int rating;public: baseDMA(const char *l = "null", int r = 0); baseDMA(con原创 2016-11-23 21:04:14 · 521 阅读 · 0 评论 -
deep copy and shallow copy
///在有指针的情况下,浅拷贝只是增加了一个指针指向已经存在的内存,///而深拷贝就是增加一个指针并且申请一个新的内存,使这个增加的指针指向这个新的内存,///采用深拷贝的情况下,释放内存的时候就不会出现在浅拷贝时重复释放同一内存的错误!///举个栗子///最能体现深层拷贝与浅层拷贝的,就是‘=’的重载。#include#includeusing namespace std;cl原创 2016-11-23 21:55:02 · 230 阅读 · 0 评论 -
the principle and usage of va_list
/*****************************************************author: yomidate: 17.1.8mood: greatps: Today is the first day of my holiday ! Hahahaha!!!****************************************************原创 2017-01-08 14:16:20 · 239 阅读 · 0 评论 -
class template
/*******************************author: yomidate: 17.1.9mood: bangbangbangps: lalala*******************************////果然啊 自己写的确实是不如人家写的好 慢慢学吧 开启抄代码模式#include using namespace std;class CNode原创 2017-01-09 18:21:10 · 230 阅读 · 0 评论 -
abnormality handling
/*******************************author: yomidate: 17.1.9mood:ps:*******************************////谁能告诉我它为啥没捕捉到异常呀?【转圈哭】/*#includeusing namespace std;void play(){ try { i原创 2017-01-09 19:31:00 · 292 阅读 · 0 评论 -
位运算
#include #include #include #include using namespace std;int main(int argc, char* argv[]){ cout<<"==移位操作===================="<<endl; //左移/右移n位将所有位向左/右移动n位,腾出来的位置补零,超出边界的位置被丢弃。相当于乘以/原创 2016-05-14 21:22:45 · 260 阅读 · 0 评论 -
HDU 1166 敌兵布阵
#include struct mtree{ int l, r, v, sum;}tree[10000];using namespace std;void build(int node, int b, int e){ tree[node].v = 0; tree[node].l = b; tree[node].r = e; if(b == e)原创 2016-04-15 21:18:17 · 301 阅读 · 0 评论 -
引用(五)
///看了个引用的小程, 发现我需要复习了。。。。。。#includeusing namespace std;#includestruct free_throws{ std::string name; int made; int attempts; float percent;};void display(const free_throws & f原创 2016-04-21 11:24:31 · 347 阅读 · 0 评论 -
引用(一)
/*~~与指针一样不太好理解~~一、创建引用变量1.引用变量的创建:int rats;int & rodents = rats;int &指的是指向int的引用。上述引用声明允许将rats和rodents互换,它们指向相同的值和内存单元。2.注意:必须在声明引用时将其初始化,而不能像指针那样,先声明,在赋值。int rat;int & rodent;原创 2016-04-02 11:11:07 · 252 阅读 · 0 评论 -
引用(二)
///1.引用的属性和特别之处///下面是一个计算立方的程序:#includeusing namespace std;double cube(double a){ a *= a * a; return a;}double refcube(double &ra){ ra *= ra * ra; return ra;}int main(){原创 2016-04-02 18:11:25 · 238 阅读 · 0 评论 -
引用(三)
1.小伙伴们都出去玩了T……T2.喜爱的书到啦!!!一会儿去取!!!///将引用用于结构/*引用非常适合用于结构和类。下面的程序不仅引用了结构,它还让函数返回指向结构的引用,它与返回结构有所不同。通常将返回的引用声明为const。*/#includeusing namespace std;struct sysop{ char name[26]; char原创 2016-04-03 10:15:09 · 446 阅读 · 0 评论 -
引用(四)
///将引用用于类对象/*将类对象传递给函数时,C++通常的做法是使用引用。下面的例子使用了string类。它创建一个函数,将指定的字符串加入到另一个字符串的前面和后面。*/#include#includeusing namespace std;string version1(const string & s1,const string & s2);const string & ve原创 2016-04-04 15:45:12 · 217 阅读 · 0 评论 -
对象继承和引用
///对象继承和引用/*ofstream 对象可以 使用 ostream 类的方法,这使得文件输入/输出的格式与控制台相同,使得能够将特性从一个类出啊递给另一个类的语言特性被称为继承。下面有一个看起来好复杂的程序~~*/#include#include#includeusing namespace std;void file_it(ostream & os,doub原创 2016-04-06 14:57:31 · 822 阅读 · 0 评论 -
默认参数
对于带参数列表的函数,必须从右向左添加默认值,也就是说,要为某个参数设置默认值,则必须为它右边的所有参数提供默认值:int harpo(int n,int m = 4, int j = 5);/// validint chico(int n,int m = 6, int j;) ///invalidint groucho(int k=1,int m=2, int n = 3)///原创 2016-04-06 20:26:50 · 247 阅读 · 0 评论 -
函数重载
唉 腿拉伤了 坐在床上敲代码的滋味真不好受!/*函数重载的关键是函数的参数列表,也称函数特征标。若两个函数的参数数目和类型相同,同时参数的排列顺序也相同,则他们的特征标相同,变量名则无关紧要。一些看起来彼此不同的特征标不能共存编译器在检查函数特征标时,将把类型引用和类型本身视为同一个特征标。double cube( double x);double cube( double &原创 2016-04-07 21:20:36 · 289 阅读 · 0 评论 -
pair<int, int> set<pair<int, int>>
///set默认的比较规则先按照first比较,如果first相同,再按照second 比较。///注意:定义的时候右边的两个>>要空一格。set s;int main(){ set::iterator it; s.insert(make_pair(1,3)); s.insert(make_pair(1,2)); s.insert(原创 2016-04-09 18:48:02 · 1026 阅读 · 0 评论 -
函数模板(一)
/*要建立一个模板, 关键字template和 class 是必须的!除非可以使用关键字typename代替class,另外, 必须使用尖括号!下面是一个模板:template void Swap(Any &a, Any &b){ Any temp; temp = a; a = b; b = temp;}类型名可以任意选择, 这里为Any, 也可以是原创 2016-04-16 14:20:15 · 235 阅读 · 0 评论 -
set容器
学无止境啊///在set中查找是使用二分查找,也就是说,如果有16个元素,///最多需要比较4次就能找到结果,有32个元素,最多比较5次。/*2.set中常用的方法begin() ,返回set容器的第一个元素end() ,返回set容器的最后一个元素clear() ,删除set容器中的所有的元素empty() ,判断set容器原创 2016-04-09 11:38:15 · 475 阅读 · 0 评论 -
函数模板(二)
又到了我最喜欢的学习语言的时间了 好开心啊!!!显式具体化:struct job{ char name[40]; double salary; int floor;};***C++允许将一个结构赋给另一个结构。第三代具体化:*对于给定的函数名,可以有非模板函数,模板函数和显式具体化模板函数以及他们的重载版本。*显式具体化的原型和定义应以template<>原创 2016-04-16 21:47:09 · 197 阅读 · 0 评论 -
函数模板(三)
//实例化和具体化最初,编译器只能通过隐式实例化,来使用模板生成函数定义,现在C++还允许显式实例化, 这意味着可以直接命令编译器创建特定的实例,如Swap():template void Swap(int &, int &);///显式实例化该声明的意思是 使用Swap()模板生成int类型的函数定义而,显式具体化使用下面的两个等价声明之一:template (int &, int原创 2016-04-17 19:43:00 · 393 阅读 · 0 评论 -
单独编译
///头文件中常包含的内容:///函数原型///使用#define或const定义的符号常量///结构声明///类声明///模板声明///内联函数///不要将函数定义或变量声明放到头文件中,可能带来麻烦///例如:若在头文件中包含一个函数定义,然后在其它两个文件///(属于同一程序)中包含该头文件,则同一个程序中将包含同一个///函数的两个定义,除非函数是内联的,否则将出错。原创 2016-05-12 20:19:23 · 287 阅读 · 0 评论 -
bitset用法
/*有些程序要处理二进制位的有序集,每个位可能包含的是0(关)或1(开)的值。位是用来保存一组项或条件的yes/no信息(有时也称标志)的简洁方法。标准库提供了bitset类使得处理位集合更容易一些。要使用bitset类就必须要包含相关的头文件。在本书提供的例子中,假设都使用了std::bitset的using声明:#include using std::bitset;1.bitset定原创 2016-05-15 14:55:17 · 790 阅读 · 0 评论 -
递归的两个例程
/*#include using namespace std;void countdown(int n);int main(){ countdown(4); return 0;}void countdown(int n){ cout << "Counting down ..." << n << endl; if(n>0) countd原创 2016-05-04 20:15:51 · 240 阅读 · 0 评论 -
函数指针
///通常, 要声明指向特定类型的函数指针,可以首先编写这种函数的原型,然后用(*pf)替换函数名。///这样pf就是这类函数的指针。#include double betsy(int);double pam(int);using namespace std;void estimate(int lines, double(*pf)(int));int main(){ in原创 2016-05-04 21:04:06 · 241 阅读 · 0 评论 -
voliatile关键字
啃书的时候,发现了这个关键字, 以前都没有听过!唉,我真是孤陋寡闻啊。。。 C/C++ 中的 volatile 关键字和 const 对应,用来修饰变量,通常用于建立语言级别的 memory barrier。这是 BS 在 "The C++ Programming Language" 对 volatile 修饰词的说明:A volatile specifier is a hint to a原创 2016-04-20 20:39:57 · 1750 阅读 · 0 评论 -
ZeroMemory , memset 与 ={0}的区别
ZeroMemory、memset 和 “={0}” 三者用于清零操作的区别:首先是ZeroMemory和memset的区别:1、ZeroMemory是微软的SDK提供的,memset属于C Run-time Library提供的。因此ZeroMemory只能用于Windows系统,而memset还可用于其他系统。2、ZeroMemory是一个宏,只是用于把一段内存原创 2017-03-28 17:02:48 · 328 阅读 · 0 评论