自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (1)
  • 收藏
  • 关注

原创 指针(1)

wu

2022-07-14 23:59:01 140 1

原创 内存分配-----

wu

2022-07-14 19:27:38 106

原创 7、list容器

1、链表优点:对任意位置快速插入删除缺点:容器遍历速度没有数组快,占用空间比数组大(数据域4+指针域4=8)2、list:双向循环链表data(数据域)prev(指向前一个结点)next(指向下一个结点)(最后一个结点的next指向第一个结点,第一个结点的prev指向最后一个结点)push_front()pop_front()front()back()begin()end() push_back() ...

2021-09-23 10:37:55 132

原创 6、queue容器

queue<int>que;que.push()que.pop()que.front()que.back()que.empty()que.size()------------------------------------queue:先进先出只允许从一端新增数据,一端移除数据队列不允许遍历,只有队头队尾____________________push(elem) pop()front() ba...

2021-09-11 12:25:31 203

原创 5、stack容器

stack<int>stk;stk.push(elem)stk.pop()stk.top()stk.empty()stk.size()#include<iostream>using namespace std;#include<stack>void test01(){ stack<int>stk; stk.push(10); stk.push(20); stk.push(30); stk.push(40);

2021-09-11 11:53:59 50

原创 STL-案例1-评委打分

案例:5名选手,10个评委分别对他们打分(去除最高分,最低分,取平均值)步骤:1.创建5名选手,放到vector容器中2.遍历vector容器,for循环10个评委打分,存放到deque容器中3.sort算法排序,去除最高分,最低分(deque)4.deque容器遍历,累加总分代码:#include<iostream>using namespace std;#include<string>#include<vector>#includ

2021-09-11 11:08:42 135

原创 4、deque容器

deque容器:双端数组(可以对头端插入删除,也可以对尾端插入删除)deq.push_back()deq.pop_back()deq.push_front()deq.pop_front()deq.front()deq.back()deq.begin()deq.end()deq.insert( )...//几种形式sort( iterator begin, iterator end )//对于支持随机访问的迭代器的容器,都可以利用sort算法,直接对其进行排序.

2021-09-11 09:36:12 115

原创 3、vector容器

vector<int> vec;vec.push_back(10);for_each(vec.begin(), vec.end(),myPrint); vector<int>::iterator itBegin = vec.begin(); //vec.begin() 指向容器中第一个元素的位置vector<int>::iterator itEnd = vec.end(); //vec.end() 指向容器中最后一个元素的,下一个位置//...

2021-09-01 10:20:30 58

原创 2、string容器

f

2021-09-01 08:38:12 39

原创 1、STL

一、STL的诞生C++面向对象和泛型编程思想,目的就是复用性的提升面向对象:封装、继承、多态泛型编程:模板.二、STL基本概念STL:标准模板库STL:容器、算法、迭代器容器和算法通过迭代器无缝连接STL:类模板或者函数模板.三、STL六大组件STL六大组件:容器、算法、迭代器、仿函数、适配器、空间配置器仿函数:可以算做算法的某种策略(重载())适配器:修饰容器、仿函数、迭代器接口的东西空间配置器:负责空间的配置与管理.四、STL容器,算.

2021-09-01 08:37:13 58

原创 24、模板

泛型编程:主要利用的技术就是模板模板:函数模板、类模板模板: 提高复用性,将类型参数化二、函数模板1、函数模板语法template<typename T>template: 声明创建模板typename: 后面符号是 数据类型(可用class代替)T:通用的数据类型//模板template<typename T>void mySwap(T& a, T& b){ T temp = a; a = b; b =...

2021-08-30 08:36:13 134

原创 排序(冒泡排序、选择排序)

冒泡排序每一轮选出一个最大的排最后面依次排序排 n-1 轮每一轮,j<n-1-i;num[ 5 ] = { 3 9 1 6 2 };- - - - 9- - - 6 9- - 3 6 9- 2 3 6 ...

2021-08-29 15:01:14 48

原创 23、C++职工管理系统

// 来源黑马c++Woker //抽象基类Employee:public WokerManager :public WokerBoss :public WokerwokerManager //功能类职工管理系统.cpp //主函数-----------------------------------------Woker** m_EmpArray = new woker*[this->m_empNum];m_empArray[ i ] = ...

2021-08-29 12:14:15 131

原创 22、C++(继承、多态、文件)总结

一、抽象基类1、子类不析构AbstractCalculator *abs = new AddCalculator;delete abs; //单纯delete,调用析构.2、子类析构(抽象基类,虚析构)Animal* animal = new Cat( "花花" );delete animal; //delete animal时,会调用animal的析构函数 ( //而且子类Cat,存在在堆区开辟空间情况 )...

2021-08-27 20:01:00 93

原创 21、C++文件

一、文本文件ifstream:(input)、读文件ofstream:(output)、写操作fstream:读写文件(1)、写文件----------------------------------------#include<fstream>ofstream ofs; //创建流对象ofs.open("文件路径", 打开方式); //打开文件ofs<<"写入的数据"; //ofs,往文件上输出,cout...

2021-08-25 11:57:49 690

原创 20、C++多态—(纯虚函数,抽象类,虚析构,纯虚析构)

一、多态的基本语法多态:静态多态、动态多态静态多态:函数重载、运算符重载动态多态:派生类和虚函数实现运行时多态区别:静态多态函数地址早就绑定 -编译阶段确定函数地址静态多态函数地址晚绑定 - 运行阶段确定函数地址————————————————class Animal{public: void speak() { cout << "动物在说话。" << endl; }};class Cat :publi...

2021-08-23 22:51:21 280

原创 19、C++继承-(对象模型,子父类同名成员,菱形继承)

一、继承的基本语法基类(父类)派生类(子类)继承:减少重复代码class 子类 :public 父类{}二、继承方式基类:public权限、protected权限、private权限1、公共继承(除私有,其他权限和父类一模一样)共有继承:基类public权限(任然在派生类public)、 基类protected权限(任然在派生类protected)、 基类private(不可访问)2、...

2021-08-23 20:36:41 162

原创 18、运算符重载

目的:对运算符再定义,以适应不同的数据类型一、加号(+)运算符重载1、自己写函数,实现两个对象相加Person Person::addPerson(Person& p){ Person temp; temp.m_A = this->m_A + p.m_A; temp.m_B = this->m_B + p.m_B; return temp; //调用拷贝构造函数}Person p3=p2.addP...

2021-08-22 14:02:39 115

原创 1、位运算

位与---p&q (与):都为1时才为1,位或---p|q (或):都为0时,才为0异或---p^q (相同为0,不同为1)取反---~p(非)二进制左移运算符---<<:将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)A<<2将得到240,即为1111...

2021-08-21 19:51:41 63

原创 17、C++友元函数

友元目的:让一个函数或一个类,访问另一个类中的私有成员一、全局函数做友元全局函数里在类中声明为友元后,可以访问这个类的私有成员二、类做友元class GoodGay{ .....};class Building{friend class GoodGay; // GoodGay类 做 Building类 的友元 ......};Building *building;building = new B...

2021-08-18 19:23:22 75

原创 16、C++对象模型和this指针

一、成员变量和成员函数分开存储类的成员变量和成员函数分开存储只有非静态成员变量才属于类的对象class Person{public: int m_A; float m_B; char m_C; double m_D; //内存对齐};Person p;sizeof(p)=24 内存对齐:4 4 1+(3) 8 = 20 20+4=24 (24%8==0)空对象...

2021-08-08 12:42:11 65

原创 15、C++对象的初始化和清理

一、构造函数和析构函数构造函数:编译器自动调用,主要为对象成员属性赋值, 程序在调用对象时,自动调用构造函数 有参数,可以发生重载析构函数:对象销毁前,系统自动调用,执行一些清理工作 程序在对象销毁前,自动调用析构函数,无需手动调用 没有参数,不可以重载编译器提供的构造函数和析构函数是空的二、构造函数的分类及调用1.分类参数分类...

2021-08-06 20:56:23 165

原创 14、C++类和对象(封装)

C++三大特性:封装、继承、多态类(对象)1、封装意义:属性和行为权限进行控制2、访问权限//protected 派生类可以访问父类//private 始终不可访问//public 类外可以访问//private 类外不可访问//protected 类外不可访问class和struct的区别:默认访问权限不同struct权限:默认共有class权限:默认私有...

2021-08-06 10:27:33 39

原创 13、C++函数重载(提高复用性)

一、函数重载满足条件:1、同一作用域下2、函数参数(类型不同 or 个数不同 or 顺序不同)//参数顺序,不同(参数间必须是不同类型)void func(double a, int b){ cout << "func(double a,int b)的调用 4 " << endl;}void func(int a, double b){ cout << "func(int b,double a)的调用 5" << end...

2021-08-05 16:46:08 375

原创 12、C++(默认参数、占位右参数)

一、默认参数//函数定义(实现)和 声明中,默认参数只能定义一次,否则产生二义性//只在实现中定义默认参数int func03(int a , int b );int func03(int a, int b=70){ return a + b;}//只在声明中定义默认参数int func04(int a, int b = 90);int func04(int a, int b){ return a + b;}二、占位参数//占位参数: 只写一个类型,没有变...

2021-08-05 15:19:03 63

原创 11、C++引用

1、int a=10;int &b=a; //b是a的引用(别名)不管是通过a修改,还是b修改那块内存的值,修改后,a,b的值一样都是那块内存中被修改 了的值2、引用必须初始化初始化后,不可以更改 (b已经是a的引用,那么b就不可以再为其他变量的引用)int a = 10 , c=20;int &b = a;b=c; //这不是更改引用,而是赋值,(把c的值赋值给b和a)...

2021-08-04 14:13:32 118

原创 10、C++内存四区+new

内存四区——生命周期不同程序运行前(生成.exe文件)——代码区、全局区程序运行后——栈区、堆区一、代码区(所有代码的二进制形式)存放你所写的所有代码,的二进制形式(——>CPU机器指令)特点:共享——重复的代码,只占相同的空间,不会浪费 只读——点击exe文件之后,里面的内容不会被修改二、全局区(全局变量、静态变量、常量)全局变量静态变量全局区中还包括一个常量区 常量区——字符串常量 ...

2021-08-04 13:04:22 197

原创 9、C++案例

cout << " 性别:" << (abs->personArray[i].m_Sex == 1 ? "男":"女");string sex;sex==1 ? " 男”:"女";#include<iostream>using namespace std;#include<string>#define MAX 1000//设计联系人结构体struct Person{ string m_Name; int m_Sex; .

2021-08-03 23:07:25 126

原创 8、C++结构体

基本概念一、定义和使用1、struct Student s1; //c++中,struct可以省略 Student s1;2、struct Student s2={ ... }; //Student s2={ ... };3、struct Student {... } s3;// string name; //字符串定义时s1.name //这样使用struct Student{ string name;...

2021-08-03 14:26:13 112

原创 143.重排链表

1、线性表vector ( 可以随意访问下标 )

2021-08-02 11:26:22 41

原创 7.C++_指针

一、指针变量的定义和使用 int a=10;int *p=&a; // 指针p指向a的地址 (指针p中,保存的是a的地址)int *p=100; //则a=100,可以通过指针来修改a的值二、指针所占的内存空间int a = 10;int* p = &a;不管什么数据类型32位操作系统,指针占用内存4字节 (指针保存的内容就是地址)64位操作系统,指针占用内存8字节sizeof(p) = 4;sizeof(int *)= 4;siz...

2021-08-02 10:41:00 102

原创 3.C++运算符

一、算术运算符 (加减乘除)+ - */ a/b b不能为0% (求余数) a%b b不能为0 (只有整型变量才能取模运算)++int b1 = a1++; // b1=10 a1=11 先赋值,后加一int b2 = ++a2; // b2=11 a2=11 先加一,后赋值--二、赋值运算符= += -= *= /=%= (a %= 2; ...

2021-08-01 22:43:24 48

原创 6.C++_函数(值传递、分文件编写)

一、值传递值传递时,函数形参发生改变,并不会影响实参实参和形参占用的是不同的内存空间,所以形参内存改变不影响实参除非return了具体类型,体现出来了改变或者在函数中直接打印(比如交换),也才在函数中体现了改变,main中实参不改变其他一律,不体现,实参也不改变void swap(int num1, int num2){ int temp = num1; num1 = num2; num2 = temp;}二、分文件编写1、创建后缀名为.h的头文件2、创建后缀

2021-08-01 22:42:11 84

原创 STL---初识

STL(标准模板库)STL分为:容器、算法、迭代器容器和算法通过迭代器连接STL六大组件:容器、算法、迭代器、仿函数、适配器、空间配置器STL容器:将数据结构表现出来数据结构:数组、链表、树、栈、队列、集合、映射表容器:序列式容器、关联式容器序列式容器:强调值得排序,每个元素有固定的位置关联式容器:二叉树结构,各个元素没有严格上物理的顺序关系算法:质变算法、非质变算法质变算法:改变元素内容非质变算法:不改变元素内容迭代器:类似指针(连接 容器

2021-08-01 11:42:28 55

原创 STL---string s

string str;switch( s[i] )for(char ch:str)str 的成员函数str.append("%20");str.push_back(ch);

2021-07-31 10:48:51 59

原创 STL---stack

stack<char>stk;stack 的成员函数stk.pop();stk.push();stk.push(ch);

2021-07-31 10:43:32 81

原创 STL---unordered_map

unordered_map<char,char>umap={ };umap[ch]unordered_map成员函数umap.count(key); //在容器中查找以key键的键值umap.find();umap.end();

2021-07-31 10:40:46 72

原创 STL---vector

STL

2021-07-31 10:25:57 77

原创 5.C++数组(一维数组,二维数组,冒泡排序)

一、一维数组二、二维数组

2021-07-18 09:39:57 459

原创 4.C++程序流程结构(选择,循环,跳转)

一、选择结构if (score > 600) //第一选择分支 { cout << "恭喜您考上了一本大学!" << endl; } else if (score > 500) //第二选择分支,先看满足第一选择否 { cout << "恭喜您考上了二本大学!" << endl; } else if (score > 400) //第三选择分支,先看满足第一否,再看满足第二否 { cout

2021-07-17 15:57:03 172

谢希仁 《计算机网络》第七版课件.7z

谢希仁 《计算机网络》第七版课件.7z

2021-08-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除