你好,欢迎来到小w的世界
这是我的第一篇博客,欢迎来到小w的世界!
Markdown语法与外挂标签写法汇总
1.Markdown语法自带格式参考:Markdown语法图文全面详解(10分钟学会)
注意:此页面偶尔会存在CSS冲突问题!
1.1 代码块示例源码渲染演示12345678910111213\```shell# VSCode终端hexo clean; hexo shexo clean; hexo g; hexo dgit add .; git commit -m "npm publish"; npm version patch; git push# Cmder终端hexo clean && hexo shexo clean && hexo g && hexo dgit add . && git commit -m "npm publish" && npm version patchgit push\```1234567891011# VSCode终端hexo clean; hexo shexo clean; hexo g; hexo dgit add .; gi ...
C++学习日记之标准模版库STL
1 STL的诞生
长久以来,软件界一直希望建立一种可重复利用的东西。
C++的面向对象和泛型编程思想,目的就是复用性的提升。
大多情况下,数据结构和算法都未能有一套标准,导致被迫从事大量重复工作。
为了建立数据结构和算法的一套标准,诞生了STL。
2 STL基本概念
STL(Standard Template Library,标准模板库)。
STL 从广义上分为: **容器(container) 、算法(algorithm) 、迭代器(iterator)**。
容器和算法之间通过迭代器进行无缝连接。
STL 几乎所有的代码都采用了模板类或者模板函数。
3 STL六大组件STL大体分为六大组件,分别是:容器、算法、迭代器、仿函数、适配器(配接器)、空间配置器。
容器:各种数据结构,如vector、list、deque、set、map等,用来存放数据。
算法:各种常用的算法,如sort、find、copy、for_each等。
迭代器:扮演了容器与算法之间的胶合剂。
仿函数:行为类似函数,可作为算法的某种策略。
适配器:一种用来修饰容器或者仿函数或迭代器接口的东西。
空间配置 ...
C++学习日记之泛型编程
1 模板模板就是建立通用的模具,大大提高复用性。
例如一寸照片模板、PPT模板等。
模板的特点:
模板不可以直接使用,它只是一个框架。
模板的通用并不是万能的。
2 函数模板
C++另一种编程思想称为 泛型编程 ,主要利用的技术就是模板。
C++提供两种模板机制:函数模板和类模板 。
2.1 函数模板语法函数模板作用:建立一个通用函数,其函数返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代表。
语法:
12template<typename T>函数声明或定义
解释:
template —- 声明创建模板
typename —- 表面其后面的符号是一种数据类型,可以用class代替
T —- 通用的数据类型,名称可以替换,通常为大写字母
示例:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253#include <iostream>using namespace std;//交换整型函 ...
C++学习日记之文件操作
程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放。通过文件可以将数据持久化。
C++中对文件操作需要包含头文件 < fstream >
文件类型分为两种:
文本文件 - 文件以文本的ASCII码形式存储在计算机中。
二进制文件 - 文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们。
操作文件的三大类:
ofstream:写操作
ifstream: 读操作
fstream : 读写操作
1 文本文件1.1 写文件 写文件步骤如下:
包含头文件
#include <fstream>
创建流对象
ofstream ofs;
打开文件
ofs.open(“文件路径”,打开方式);
写数据
ofs << “写入的数据”;
关闭文件
ofs.close();
文件打开方式:
打开方式
解释
ios::in
为读文件而打开文件
ios::out
为写文件而打开文件
ios::ate
初始位置:文件尾
ios::app
追加方式写文件
ios::trunc
如果文 ...
C++学习日记之类和对象
C++面向对象的三大特性为:封装、继承、多态。
C++认为万事万物都皆为对象,对象上有其属性和行为。
例如:
人可以作为对象,属性有姓名、年龄、身高、体重…,行为有走、跑、跳、吃饭、唱歌…
车也可以作为对象,属性有轮胎、方向盘、车灯…,行为有载人、放音乐、放空调…
具有相同性质的对象,我们可以抽象称为类,人属于人类,车属于车类。
1 封装1.1 封装的意义封装是C++面向对象三大特性之一。
封装的意义:
将属性和行为作为一个整体,表现生活中的事物。
将属性和行为加以权限控制。
封装意义一:
在设计类的时候,属性和行为写在一起,表现事物
语法: class 类名{ 访问权限: 属性 / 行为 };
示例1:设计一个圆类,求圆的周长。
示例代码:
1234567891011121314151617181920212223242526272829303132333435363738394041#include <iostream>using namespace std;//圆周率const double PI = 3.14 ...
C++学习日记之函数的高级用法
1 函数默认参数在C++中,函数的形参列表中的形参是可以有默认值的。如果我们自己传入数据,就用自己的,否则用默认值。
语法: 返回值类型 函数名 (参数= 默认值){}
注意:
(1)如果某个位置参数有默认值,那么从这个位置往后,从左向右,必须都要有默认值。(2)如果函数声明有默认值,函数实现的时候就不能有默认参数。声明和实现只能有一个默认参数。
示例:
12345678910111213141516#include <iostream>using namespace std;int func(int a, int b = 10, int c = 10) { return a + b + c;}int main() { cout << "ret = " << func(20,20,20) << endl; cout << "ret = " << func(20,20) << endl; cout <& ...
C++学习日记之引用
1 引用的基本使用作用: 给变量起别名。
语法: 数据类型 &别名 = 原名
示例:
12345678910111213141516171819#include <iostream>using namespace std;int main() { int a = 10; int &b = a; cout << "a = " << a << endl; cout << "b = " << b << endl; b = 100; cout << "a = " << a << endl; cout << "b = " << b << endl; system("pause"); return 0;}
输出:
1234a = 10b = 10a = 100b = 100
2 引用注意事项
引用必须初始化 ...
C++学习日记之内存分区模型
C++程序在执行时,将内存大方向划分为4个区域:
代码区:存放函数体的二进制代码,由操作系统进行管理的。
全局区:存放全局变量和静态变量以及常量。
栈区:由编译器自动分配释放,存放函数的参数值,局部变量等。
堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收。
内存四区意义:
不同区域存放的数据,赋予不同的生命周期,给我们更大的灵活编程。
1 程序运行前 在程序编译后,生成了.exe可执行程序,未执行该程序前分为两个区域:
代码区:
存放 CPU 执行的机器指令。
代码区是共享的,共享的目的是对于频繁被执行的程序,只需要在内存中有一份代码即可。
代码区是只读的,使其只读的原因是防止程序意外地修改了它的指令。
全局区:
全局变量和静态变量存放在此。
全局区还包含了常量区, 字符串常量和其他常量也存放在此。
该区域的数据在程序结束后由操作系统释放。
示例:
123456789101112131415161718192021222324252627282930313233343536373839404142434445#inc ...
C++学习日记之结构体
1 结构体基本概念结构体属于用户自定义的数据类型,允许用户存储不同的数据类型。
2 结构体定义和使用语法:struct 结构体名 { 结构体成员列表 };
通过结构体创建变量的方式有三种:
struct 结构体名 变量名
struct 结构体名 变量名 = { 成员1值 , 成员2值…}
定义结构体时顺便创建变量
示例:
1234567891011121314151617181920212223242526272829303132333435363738#include <iostream>using namespace std;//结构体定义struct student{ //成员列表 string name; //姓名 int age; //年龄 int score; //分数}stu3; //结构体变量创建方式3 int main() { //结构体变量创建方式1 struct student stu1; //struct 关键字可以省略 stu1.name = "张三&quo ...