C++
文章平均质量分 57
C++学习
小小小毛毛虫~
仅用于学习记录,均为学习笔记
展开
-
【C++内存管理侯捷】---学习笔记(下)malloc/free,loki allocator,other issue
第三讲 malloc/free第四讲 loki allocator第五讲 other issue* **malloc/free是C层面的函数*** 源代码是来自于VC6.0;因为比较复杂,因此以图为主,辅以部分源代码,理解其运行机制;原创 2022-06-26 10:18:17 · 391 阅读 · 0 评论 -
【C++内存管理侯捷】---学习笔记(上)primitives(new,delete...),std::allocator
第一讲 primitives第二讲 std::allocator内存分配的每一层面两个最重要的函数allocate:deallocate;原创 2022-06-25 16:01:03 · 616 阅读 · 0 评论 -
【C++标准11-14-侯捷】---学习笔记
第一讲 语言第一节 头文件header files(1)标准库都在std名称空间中,全名为std::+名字;(2)旧版本就是#include<stdio.h>也可以兼容使用;1.2 看源代码需要全文检索工具1.3 测试是否支持并设置C++2.0,__cplusplus1.4 主要学习内容—C++2.0版本第2节 Variadic Templates可变参数模板(重量级改变)2.1 print()为例(1)const Type&… args表明接收任意数量任意类原创 2022-03-21 15:16:53 · 1679 阅读 · 0 评论 -
【STL和泛型编程-侯捷】---学习笔记(上)
1 STL体系结构基础介绍1 第一讲(1)Generic Programming(GP,泛型编程),使用template模板为主要工具来编写程序。(2)STL是泛型编程GP最成功的作品。1.1 C++ Standard Library VS Standard Template Library(1)C++标准库(C++ Standard Library),include的头文件,标准库中70%都是STL;C++标准库.h文件,编译器自带,可以看到源代码。(2)Standrad Templat...原创 2022-03-11 13:59:23 · 2198 阅读 · 0 评论 -
【STL和泛型编程-侯捷】---学习笔记(下)
1、算法algorithm(1)算法看不到容器,只能看到迭代器,通过迭代器去处理容器;根据迭代器的类型,判断怎么提供哪种最优的方式。(2)Algorithm看不见容器,对其一无所知,所以,需要的信息都必须从迭代器中获得,因此迭代器必须可以回到算法的提问,才能搭配算法的所有操作;1 迭代器的分类(category)(1)array,vector,deque,都是随机访问迭代器;(连续的)(2)list,set,multiset,map,multimap,都是双向访问迭代器;(不连续),forwar原创 2022-03-18 14:09:46 · 340 阅读 · 0 评论 -
C++ Primer Plus(第6版)---编程作业完成(第十五章)
charpter15_homework.cpp#include<iostream>#include<stdexcept>#include<string>#include"tv_1.h"#include"sales.h"using namespace std;void p15_1(void);void p15_2(void);void p15_3(void);void p15_4(void);int main(){ //p15_1();原创 2022-02-28 18:05:03 · 541 阅读 · 0 评论 -
C++ Primer Plus(第6版)---编程作业完成(第十四章)
charpter14_homework.cpp#include<iostream>#include<string>#include<cstring>#include"wine_1.h"#include"wine_2.h"#include"queuetp.h"#include"workermi.h"#include"person.h"#include"emp.h"using namespace std;void p14_1(void);void原创 2022-02-24 21:02:46 · 626 阅读 · 0 评论 -
C++ Primer Plus(第6版)---编程作业完成(第十三章)
charpter13_homework.cpp#include<iostream>#include<string>#include"classic.h"#include"dma_3.h"#include"port.h"using namespace std;void p13_1(void);void p13_3(void);void p13_4(void);int main(){ //p13_1(); //p13_3(); p13_4(); r原创 2022-02-19 14:14:25 · 512 阅读 · 0 评论 -
C++ Primer Plus(第6版)---编程作业完成(第十二章)
charpter12_homework.cpp#include<iostream>#include<cstring>#include<ctime>#include<cstdlib>#include"String2.h"#include"stock.h"#include"stack1.h"#include"queue.h"using namespace std;void p12_1(void);void p12_2(void);vo原创 2022-02-16 18:05:40 · 619 阅读 · 0 评论 -
C++ Primer Plus(第6版)---编程作业完成(第十一章)
charpter11_homework.cpp#include<iostream>#include<fstream>#include<ctime>#include"vect_hw.h"#include"time_hw.h"#include"stonewt_hw5.h"#include "complex_hw.h"//函数原型void p11_1(void);void p11_3(void);void p11_4(void);void p11_5原创 2022-02-12 14:03:24 · 264 阅读 · 0 评论 -
C++ Primer Plus(第6版)---编程作业完成(第十章)
charpter10_homework.cpp#include<iostream>#include"bank_account.h"#include"Person.h"#include"golf.h"#include"sales.h"#include "stack.h"//引入栈#include "move.h"#include "plorg.h"#include "List.h"using namespace std;using namespace SALES;//函原创 2022-02-09 20:56:41 · 817 阅读 · 0 评论 -
C++ Primer Plus(第6版)---编程作业完成(第九章)
charpter09_homework.cpp#include <iostream>#include <string>#include <cstring>#include "golf.h"#include "sales.h"using namespace std;using namespace SALES;//函数原型void p9_1(void);void p9_2(void);void p9_3(void);void p9_4(void);原创 2022-02-04 20:47:45 · 478 阅读 · 0 评论 -
C++ Primer Plus(第6版)---编程作业完成(第八章)
#include <iostream>#include <string>#include <cctype>#include <cstring>using namespace std;//函数原型void p8_1(void);void p8_2(void);void p8_3(void);void p8_4(void);void p8_5(void);void p8_6(void);void p8_7(void);//主函数int.原创 2022-02-03 19:57:24 · 499 阅读 · 0 评论 -
C++ Primer Plus(第6版)---编程作业完成(第七章)
第七章#include <iostream>using namespace std;//符号常量const int Golf_Num = 10;struct box{ char maker[40]; float height; float width; float length; float volume;};//函数原型double average_0(double,double);void arr_input(double arr[Golf_Num], in原创 2022-01-27 22:41:09 · 378 阅读 · 0 评论 -
C++ Primer Plus(第6版)---编程作业完成(第六章)
第六章#include <iostream>#include <cctype>#include <string>#include <fstream>using namespace std;//函数原型void cc_type(void);void donation(void);void test(void);void bop_plus(void);void tvarp(void);void denotion_plus(void);原创 2022-01-23 17:05:08 · 219 阅读 · 0 评论 -
C++ Primer Plus(第6版)---编程作业完成(第四,五章)
第四章#include <iostream>#include <string>#include <cstring>#include <array>using namespace std;//函数原型void grade(void);void code(void);void name(void);void name_string(void);void candy(void);void candy_array(void);void p原创 2022-01-21 17:35:44 · 223 阅读 · 0 评论 -
C++ Primer Plus(第6版)---编程作业完成(第二,三章)
第二章#include <iostream>using namespace std;#include <iostream>using namespace std;//函数原型void Print_name(void);int Long_convert(void);void Print1(void);void Print2(void);void Age(void);double Temper(double celsius);double Light_year原创 2022-01-18 17:05:35 · 1614 阅读 · 0 评论 -
C++学习笔记(1)----基础
1C++概念1、C++关键字2、标识符命名规则(1)不能是关键字;(2)只能由字母、数值、下划线组成;(3)第一个字符必须为字母或下划线;(4)标识符字母区分大小写3、数据类型意义---给变量分配合适的内存空间默认情况下,输出一个小数,会显示出6位有效数值,小数点前后均为有效数位C和C++中字符变量只占用1个字节4、转义字符...原创 2021-07-29 15:38:32 · 188 阅读 · 0 评论 -
C++学习笔记(2)---内存分区、引用,函数提高---默认、占位、重载
1 内存分区模型1.1 内存四区---不同区域存放的数据,赋予不同的生命周期,给我们更大的灵活编辑。C++程序在执行时,将内存大方向划分为4个区域:1、代码区:函数体的二进制代码,注释、由操作系统进行管理的;2、全局区:全局变量、静态变量、常量;3、栈区:编译器自动分配释放,存放函数的参数值,局部变量等;4、堆区:程序员分配和释放,若程序员不释放,程序结束时由操作系统回收;1.2 程序运行前---编译后,生成.exe可执行程序,未执行该程序前分为以下:1、代码区:存放CPU执原创 2021-08-02 15:58:39 · 118 阅读 · 0 评论 -
C++学习笔记(3)---类和对象初始化和清理,构造、析构、深浅拷贝、静态成员
C++面向对象的三大特性:封装、继承、多态;C++认为万事万物都皆为对象,对象上有属性和行为;具有相同性质的对象,我们可以抽象为类(class),例如人属于人类,车属于车类;1 封装1、封装的意义(1)将属性和行为作为一个整体,表现生活中的事物;(2)将属性和行为加以权限控制2、语法:class 类名{访问权限:属性/行为};//类中的属性和行为,统一称为成员//属性---成员属性、成员变量//行为---成员函数、成员方法//设计一个圆类,求圆的周长;圆求周长的公式:2*P原创 2021-08-04 13:25:36 · 158 阅读 · 0 评论 -
C++学习笔记(4)---this指针,const修饰,友元,运算符重载
1 C++对象模型和this指针1.1 成员变量和成员函数分开存储(1)在C++中,类内的成员变量和成员函数分开存储;(2)只有非静态成员变量才属于类的对象上;//-----------练习10:成员变量和成员函数存储------------------class Person{ int m_A;//非静态成员变量,属于类的对象,输出sizeof=4; static int m_B;//输出仍为4,静态成员变量不属于类的对象上 void func(){};//非静态成员函数,不属原创 2021-08-06 12:34:40 · 101 阅读 · 0 评论 -
C++学习笔记(5)---继承(静态同名,多继承,虚继承),多态(虚函数,虚析构与纯虚析构)
1 继承---面向对象三大特性之一1.1 继承的基本语法原创 2021-08-07 16:32:01 · 300 阅读 · 0 评论 -
C++学习笔记(6)---文件操作
1、文件操作程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放,通过文件可以将数据持久,C++中对文件操作需要包含头文件<fstream>1.1 文件类型分类(1)文本文件:文件以文本的ASCII码形式存储在计算机中;(2)二进制文件:文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们1.2 操作文件的三大类:(1)ofstream:写操作;(2)ifstream:读操作;(3)fstream:读写操作1.3 文本文件---写文件步骤(1)原创 2021-08-08 14:42:42 · 95 阅读 · 0 评论 -
C++学习笔记(7)---模板,函数模板、类模板
1 模板---C++泛型编程(模板)和STL技术,C++两种模板机制:函数模板和类模板1.1 模板的概念---建立通用的模具,大大提高复用性1.2 模板的特点---(1)模板不可以直接使用,只是一个框架;(2)模板的通用并不是万能的1.3 函数模板---类型通用化1、作用:建立一个通用函数,其函数返回值类型和形参类型不具体制定,用一个虚拟的类型代表2、语法:template<typename T>//函数声明或定义解释:template---声明创建模板;typena原创 2021-08-12 18:19:45 · 101 阅读 · 0 评论 -
C++学习笔记(8)---STL、容器算法迭代器、string、vector
长久以来,软件界一直希望建立一种可重复利用的东西C++的面向对象和泛型编程思想,目的就是复用性的提升;为了建立数据结构和算法的一套标准,诞生了STL1 STL---Standard Template Library---标准模板库1.1 STL基本概念(1)STL从广义上分为:容器(container)算法(algorithm)迭代器(iterator)(2)容器和算法之间通过迭代器进行无缝连接;(3)STL几乎所有代码都采用了模板类或者模板函数;1.2 STL六大组件S原创 2021-08-14 17:04:37 · 327 阅读 · 0 评论 -
C++学习笔记(9)---deque、stack、queue、list、set、map、
1 deque容器1.1 deque容器基本概念---双端数组,可以对头端进行插入删除操作1、deque与vector区别:(1)vector对于头部的插入删除效率低,数据量越大,效率越低;(2)deque相对而言,对头部的插入删除速度比vector快;(3)vector访问元素的速度会比deque快,这和两者内部实现有关;deque容器的迭代器也是支持随机访问的1.1 deque构造函数-头文件<deque>void MyPrint(const d..原创 2021-08-17 21:08:51 · 726 阅读 · 0 评论 -
C++学习笔记(10)---函数对象(仿函数)、STL遍历、查找、排序、拷贝与替换、算术生成、集合算法
1 函数对象1.1 函数对象概念(1)重载函数调用操作符的类,其对象常称为函数对象;(2)函数对象使用重载的()时,行为类似函数调用,也叫仿函数;本质:函数对象(仿函数)是一个类,不是一个函数;1.2 函数对象使用特点:(1)函数对象在使用时,可以像普通函数那样调用,可以有参数,可以有返回值;(2)函数对象超出普通函数的概念,函数对象可以有自己的状态;(3)函数对象可以作为参数传递;//-------------练习1:函数对象(仿函数)----------------原创 2021-08-18 19:03:52 · 425 阅读 · 0 评论 -
C++练习---基于多态的职工管理系统
目录职工管理系统.cppworkerManager.hworkerManager.cppworker.hemployee.hemployee.cppmanager.hmanager.cppboss.hboss.cpp职工管理系统.cpp#include <iostream>using namespace std;#include "workerManager.h"int main(){ WorkerManager wm; int c原创 2021-08-10 14:46:45 · 303 阅读 · 1 评论 -
C++练习---通讯录系统代码
//通讯录管理系统C++#include <iostream>#include <string>using namespace std;#define MAX 100void Menu(void){ cout<<"********通讯录管理系统************"<<endl; cout<<"********1、添加通讯录信息*********"<<endl; cout<<"********2、显.原创 2021-07-29 18:35:28 · 187 阅读 · 0 评论 -
C++练习---演讲比赛流程管理系统
C+++演讲比赛流程管理系统----1-演讲比赛流程管理系统.cpp2-Speaker.h 3-SpeechSpeaker.h 4-SpeechSpeaker.cpp//案例说明/*学校举行一场演讲比赛,共有12个人参加。比赛共两轮,第一轮为淘汰赛,第二轮为决赛。每名选手都有对应的编号,如10001 ~10012比赛方式:分组比赛,每组6个人;第一轮分为两个小组,整体按照选手编号进行抽签后顺序演讲。十个评委分别给每名选手打分,去除最高分和最低分,求的平均分为本轮选手的成绩当原创 2021-08-20 15:39:03 · 258 阅读 · 0 评论