- 博客(15)
- 收藏
- 关注
原创 数据结构线性表C语言实现
#include<stdio.h> #include<stdlib.h> #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 #define INITSIZE 100 typedef int Status; typed...
2020-03-22 10:44:26
443
原创 拷贝控制成员
C++ Primer学习笔记拷贝控制成员拷贝、赋值和销毁术语 拷贝控制成员 拷贝、赋值和销毁 拷贝初始化不仅在用=定义变量时会发生,将一个对象作为实参传递给一个非引用类型的形参、从一个返回类型为非引用类型的函数返回一个对象、用花括号列表初始化一个数组中的元素或一个聚合类中的成员也会执行拷贝初始化。 在一个析构函数中,首先执行函数体,然后销毁成员。成员按初始化顺序的逆序销毁。 内置类型没有析构函数,因此销毁内置类型成员什么也不需要做。 无论何时一个对象被销毁,就会自动调用其析构函数:变量在离开作用域时被销毁
2021-08-14 11:49:48
275
原创 标准库特殊设施
C++ Primer学习笔记标准库特殊设施tuplebitset类型正则表达式术语tuplebitset正则表达式 标准库特殊设施 tuple tuple是一个“快速而随意的”的数据结构。 bitset类型 string的下标编号习惯与bitset恰好相反:string中下标最大的字符用来初始化bitset中的低位。 //二进制位序列为1111011101111 bitset<13> bitvec(0xbeef); //二进制位序列为00001011111011101111 bitset
2021-08-13 17:36:46
135
原创 运算符重载
C++ Primer学习笔记运算符重载基本概念术语 运算符重载 基本概念 对于一个运算符函数来说,它或者是类的成员,或者至少含有一个类类型的参数。 对于一个重载的运算符来说,其优先级和结合律与对应的内置运算符保持一致。 通常情况下,不应该重载逗号、取地址、逻辑与和逻辑或运算符。 如果一个类包含下标运算符,则它通常会定义两个版本:一个返回普通引用,另一个是类的常量成员并且返回常量引用。 箭头运算符永远不能丢掉成员访问这个最基本的含义。 类定义了调用运算符,则该类的对象称作函数对象。 默认情况下lambda不
2021-08-13 11:18:16
141
原创 object-oriented programming
OOP面向对象程序设计概述定义基类和派生类三级目录术语 面向对象程序设计 概述 核心思想:封装、继承、多态。函数的运行版本由实参决定,即在运行时选择函数的版本,所以动态绑定有时被称为运行时绑定。 定义基类和派生类 基类通常都应该定义一个虚析构函数,即使该函数不执行任何实际操作也是如此。 任何构造函数之外的非静态函数都可以是虚函数。 派生类列表中的访问说明符的作用是控制派生类从基类继承而来的成员是否对派生类的用户可见。 如果派生类没有覆盖基类中的某个虚函数,则该虚函数的行为类似其他的普通成员,派生类会直接继
2021-08-12 12:04:23
457
原创 模板与泛型学习三
重载与模板C++ Primer学习笔记重载与模板可变参数模板编写可变参数函数模板术语重载与模板编写可变参数函数模板 C++ Primer学习笔记 重载与模板 函数模板可以被另一个模板或一个普通非模板函数重载。 当有多个重载模板对一个调用提供了同样好的匹配时,应选择最特例化的版本。 对于一个调用,如果一个非函数模板与一个函数模板提供了同样好的匹配,则选择非模板版本。 可变参数模板 一个可变参数模板就是一个接受可变数目参数的模板函数或模板类。可变数目的参数被称为参数包,模板参数包和函数参数包。 编写可变参数
2021-08-11 19:21:53
180
原创 模板与泛型学习二
C++ Primer学习 模板实参推断C++ Primer学习类型转换与模板类型参数术语类型转换和模板类型参数 从函数实参来确定模板实参的过程被称为模板实参推断。 类型转换与模板类型参数 const转换:可以将一个非const对象的引用(或指针)传递给一个const的引用(或指针)形参。顶层const无论是在形参中还是在实参中,都会被忽略。 数组或函数指针转换:函数形参不是引用类型。 术语 类型转换和模板类型参数 ...
2021-08-11 10:29:28
137
原创 模板与泛型学习一
C++ Primer学习笔记 模板定义 定义模板 函数模板 一个函数模板就是一个公式,可用来生成针对特定类型的函数版本。 template <typename T> int compare(const T &r1,const T &r2) { if(r1<r2) return -1; if(r2<r1) return 1; return 0; } 模板以template关键字开始,<>部分表示模板参数列表,由多个模板参数组成,这里<typ
2021-08-10 20:44:48
124
原创 队列的C语言实现:顺序存储
/* * 循环队列 */ #include<stdio.h> #include<stdlib.h> typedef int bool; #define true 1 #define false 0 #define ERROR -1 #define INITSIZE 4 typedef struct { int *base; int front; int r...
2020-03-24 09:38:32
249
原创 栈的C语言实现:顺序存储
#include<stdio.h> #include<stdlib.h> typedef int bool; #define true 1 #define false 0 #define ERROR -1 #define INITSIZE 10 typedef struct { int *base; int *top; int stacksize; } SqS...
2020-03-24 08:46:13
299
原创 队列的C语言实现:链式存储方式
/* * 队列:链式存储方式,带头结点,头节点的data用于保存队列中元素个数 */ #include <stdio.h> #include <stdlib.h> typedef int bool; #define true 1 #define false 0 #define ERROR -1 typedef struct node { int data; st...
2020-03-24 07:58:21
221
原创 栈的C语言实现:链式存储方式
/* * 带头节点的栈:头结点的data属性用于记录栈中有几个元素 */ #include <stdio.h> #include <stdlib.h> typedef int bool; #define true 1 #define false 0 typedef struct node { int data; struct node *next; } Node...
2020-03-23 21:20:25
197
原创 MyBatis的配置文件
MyBatis配置文件结构 MyBatis根配置信息文件 根配置文件文档的结构:顶层的configuration配置 properties属性:可外部配置且可以动态替换的。 settings设置:调整设置,它们会改变MyBatis的运行时行为。 typeAiases类型命名:类型别名是为Java类型设置一个别名。 typeHandlers类型处理器:用类型处理器将获取的值以合适的方...
2020-02-17 12:19:21
155
原创 NIO Buffer(缓冲)的常用的方法
Buffer常用的方法 package nio; import java.nio.CharBuffer; /** * 测试Buffer常用的方法 * * @author 38027 * */ public class BufferTest { public static void main(String[] args) { // 调用静态方法allocate创建CharBuf...
2019-12-01 21:41:35
191
原创 重定向标准输出到控制台
** 重定向标准输出到控制台 ** ```java package app; import java.io.PrintStream; import java.io.FileOutputStream; import java.io.IOException; /** * Test */ public class Test { public static void main(Stri...
2019-12-01 17:38:11
470
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅