
C/C++
Lavender_LoveQaQ
一直很努力的小白
展开
-
C/C++构造函数和析构函数
一.构造函数如哈让一个对象在创建的时候就被赋予了值——构造函数是类的一种特殊的成员函数(1)函数名必须和类名相同(2)没有返回值#include<stdio.h>class Circle{ public: int x,y,radius; public://以下就是构造函数 Circle() { x = y = 0; radius = 1...原创 2019-01-23 20:03:39 · 699 阅读 · 0 评论 -
C/C++STL标准模板库(五)——map
map:键值保存,高效访问通过键值来排序,通过键值来查找高效访问:1000个数据只要查找1-10次,100万个数据只要1-20次就可以查找到。2^n > 数据总数即可可以看得出map对处理大数据有用插入效率低于链表,因为涉及到排序。map的应用:红黑树——一种平衡排序二叉树1.map的构造函数(1)无参构造:map<int,char> mp;//<键值,实...原创 2019-02-15 17:04:58 · 224 阅读 · 0 评论 -
C/C++重载操作符(一)——重载算数操作符
引例用一个类 Fraction,用于表示2/3,87/890这种分数class Fraction{ public: Fraction():num(1),den(1) { } Fraction(int n,int d):num(n),den(d) { } public: int num;//分子 int den;//分母 };定义两个数:Fr...原创 2019-02-11 13:52:54 · 938 阅读 · 0 评论 -
C/C++重载操作符(二)——重载操作符[ ]
[]用于访问一组元素中的一个元素。默认的,数组是支持下标访问的。[]中的下标称为:索引,key,唯一标志符当一个对象设计用于包含多个元素时,可以重载操作符[]比如一个字符串Text包含多个元素(每个元素是一个字符串)Text txt(“helloworld”);char ch = text[0];比如在一个DataStore里面存储多个Student的记录。DataStore ds;...原创 2019-02-11 13:57:50 · 417 阅读 · 0 评论 -
C/C++重载操作符(三)——重载关系操作符
关系操作符:<,>,<=,>=,==,!=默认的,编译器不支持对自定义类的进行关系操作。例如:Fraction fa(2,3);Fraction fb(3,5);if(fa == fb) //编译器报错,不支持{}在这呢,我们只介绍== 的重载操作(1)重载类操作符#include<stdio.h>#include&a原创 2019-02-11 21:41:50 · 234 阅读 · 0 评论 -
C/C++重载操作符(四)——重载类型转换操作符( )
C++中允许将一个类型转换为另一个类型例如:int a = (int)1.23;//将double 转换成 int小括号:类型操作符,括号里的是要转换的目标类型一般形式:class Object{ public: operator Type()//Type是目标类型 { Type result; return result; }}; 类型一:#incl...原创 2019-02-11 21:45:39 · 420 阅读 · 0 评论 -
C/C++重载操作符(五)——重载输入输出操作符
C++中的输入输出操作符 <<,>>我们只演示输出操作符 <<定义一个类:Logger ,用于输出打印日志。使用方法:Logger lg;lg<<1;lg<<2.0;lg<<“hello”;一般形式:Logge原创 2019-02-11 21:47:28 · 436 阅读 · 0 评论 -
C/C++模板
一.函数模板在一个int 型数组中,查找最大的数…在一个double 型数组中,查找最大的数…在一个float 型数组中,查找最大的数…在一个Objext[] 型数组中,查找最大的数…算法都是一样的:遍历数组,找出最大的数,只是元素的类型不一样而已如果每一种类型都重载一个函数,那么就太麻烦了。模板:template 定义一个模子,自动适应各个类型。语法:templateT fin...原创 2019-02-12 15:47:42 · 4482 阅读 · 0 评论 -
C/C++STL标准模板库(一)——了解标准模板库
STL标准模板库中的模板太多,我们一般使用的只有四个:vector,list,string,map一般用法:(1)头文件STL的头文件是不带.h后缀的例如:#include(2)名字空间STL使用名字空间std:using namesapce std;或using std::vector //只使用其中的一个...原创 2019-02-14 15:00:55 · 365 阅读 · 0 评论 -
C/C++STL标准模板库(二)——vector
vector用于实现数组的功能,相当于在数组的基础上封装一些基础的功能1.size():返回元素个数capacity():返回当前容量在创建vector对象时,可以显式的指定其初始大小。例如以下代码是将初始容量设置为128,这意味着其内部创建了一个可以容纳128个元素的缓冲区。vector<int> arr(128);int capacity = arr.capacity(...原创 2019-02-14 15:06:50 · 235 阅读 · 0 评论 -
C/C++STL标准模板库(四)——string
//string封装了字符串相关的操作//内部实现和vector类似,操作接口上增加了字符串的接口。//string内部仍然是一个char型数组,并且也是以0结尾的。对外提供了常用的函数。//如:append,clear,at,length等操作,并支持赋值、复制等操作。1.构造string的几种方式string str1 ("xiaoming");//以C风格构造字符串 string...原创 2019-02-14 19:06:27 · 242 阅读 · 0 评论 -
C/C++STL标准模板库(三)——list
list:封装了与链表相关的功能,可以对两端进行操作。push_back():向末尾添加一个元素pop_back():删除末尾的结点push_front():在头部插入一个元素pop_front():删除头部结点这四个都是速度较快的操作,不需要遍历int main(){ list<int> lst; lst.push_back(1); lst.push_bac...原创 2019-02-14 16:44:40 · 245 阅读 · 0 评论 -
C/C++类
一.类和成员变量用class代表一个类其他说明均在代码中#include&lt;stdio.h&gt; #include&lt;string.h&gt;class object//class原理上和struct想同 {public: int a; int b; double c; double d;}; //访问修饰符:public private。每个成员变量只受最...原创 2019-01-22 21:50:15 · 358 阅读 · 0 评论 -
C/C++动态创建对象
一.用new和delete申请内存在c++中用new和delete代替malloc和free申请一个对象:int* p = new int;释放:delete p;注意(1)new的返回值就是对象指针,不用再转换了(2)new的时候可以设置初值 new int(12)申请多个对象int* p = new int [1024];释放:delete[] p;注意(1)用...原创 2019-01-24 14:33:33 · 5777 阅读 · 0 评论 -
C/C++类的继承
一.类的继承class Shape{};class Circle : public Shape{ };语法:class B : public A{}B继承于A,A类是父类,B是派生类(子类)当 B继承于A时,自动将父类中的所有public 成员继承,无法继承private的新的修饰符:protected(1)该成员不能被外部访问,如private(2)该成员可以被子类继承,如p...原创 2019-01-24 17:15:26 · 24983 阅读 · 6 评论 -
C/C++字符串的分割以及常用函数和随机函数的使用
一.字符串的分割#include&lt;stdio.h&gt;int split(char text[],char* part[]){ int count = 0; int start = 0; int stop = 0; int flag = 0; for(int i = 0;!stop;i++) { char ch = text[i]; if(ch == 0)...原创 2019-01-20 14:03:34 · 173 阅读 · 0 评论 -
C/C++引用的用法
一.引用的基本用法引用类型:其本质上是指针,在学习时可以和指针相对照。指针类型:int*double*Object*引用类型int&amp;double&amp;Object&amp;指针的使用:int a = 123;int* p = &amp;a;*p = 999;引用的使用:int a = 123;int&amp; r = a;r = 999;//对r的操原创 2019-01-25 11:19:27 · 3393 阅读 · 0 评论 -
C/C++拷贝构造函数和朋友成员
一.拷贝构造函数拷贝构造函数是一种特殊的构造函数(1)它是构造函数,所以函数名是类名,没有返回值(2)它是特殊的构造函数,所以它的参数形式是固定的class Object{public:Object(const Object&amp; other);};拷贝构造函数的定义:以一个对象为蓝本,来构造另一个对象。Object a;Object b(a);//或者写成Object b...原创 2019-01-25 15:06:33 · 215 阅读 · 1 评论 -
C/C++文件处理
//:很多注意点写在了代码的注释中一.文件的基本操作这一小节包括不同类型的数据存入文件int main()//写入数字 和字符串 和 结构体 { FILE *fp = fopen("D:/DeV项目/平时学习/文件操作.txt","wb");//如果想追加写入 可以用'ab', 'wb'会覆盖 //也可以写成 D:\\DeV项目\\平时学习\\文件操作.txt if(fp=...原创 2019-01-21 10:56:09 · 339 阅读 · 0 评论 -
C/C++多文件处理
一.extern的使用extern:声明外部函数在A.cpp文件中使用B,cpp文件中的函数extern:声明外部全局变量在A.cpp文件中访问B,cpp文件中的全局变量extern的作用:告诉编译器,在另一个cpp文件中存在着这么一函数、全局变量要避免重定义:不能定义相同名称的全局变量不能定义相同的函数(函数名和参数列表都相同)//other.cppint a = 5;do...原创 2019-01-21 14:56:48 · 3019 阅读 · 4 评论 -
C/C++面向对象编程的设计思想
如何实现面向对象编程?第一步:假设存在一个对象,设想可以为它提供什么服务第二步:定义如何使用它的服务,细化为函数。第三步:选择一种实现方法,写代码实现上面的接口。//以下是一个代码事例//DataStore.hstruct Student{ int id; char name[16]; Student* next; } ; struct DataStore { St...原创 2019-01-21 16:54:47 · 564 阅读 · 0 评论 -
C/C++内部类和名字空间
一.内部类内部类:将一个类的定义写在另一个类的内部,则称里面这个类为内部类。class AA{ public: class Inner{ public: char name[16]; };}; 在使用内部类的时候 AA::Inner#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;#include&lt;stri...原创 2019-01-26 20:43:20 · 644 阅读 · 0 评论