自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 C++ Primer学习纪录(五)数组和C语言风格的字符串

C++ Primer学习纪录(五)内置数据类型——数组和C风格的字符串数组数组的定义和初始化复杂数组声明数组元素的访问数组的下标指针和数组指针访问数组元素指针下标C风格的字符串与STL标准库的接口多维数组范围`for`语句处理数组 内置数据类型——数组和C风格的字符串 数组 数组是类似于标准库vector的数据结构,但性能和灵活程度上与vector有所区别。通俗来说数组的运行性能优于vector,但数组缺乏灵活性。 数组的定义和初始化 数组定义一般写为elem_type arr_name[const_exp

2020-06-12 17:31:25 151 1

原创 C++ Primer学习纪录(四)标准库vector容器

C++ Primer学习纪录(三)`STL`之`vector`容器简介模板定义和初始化`vector`对象列表初始化`push_back`操作`vector`的其他操作索引操作迭代器操作迭代器运算`vector`和`string`特有的迭代器操作`const_iterator`和`iterator` STL之vector容器简介 模板 先介绍下模板,C++语言中既有类模板,也有函数模板,STL中大量使用了类模板编程,这次学习的vector容器也自然是类模板之一。 模板的编写等学到了再做详细介绍。模板本身不是

2020-06-08 14:45:22 173

原创 密码学基础(一)概念篇

密码学基础概念基础概念对称密码与公钥密码其他密码技术信息安全面临的威胁与密码技术隐写术 基础概念 对称密码与公钥密码 对称密码:对称密码是指加密和解密时使用同一密钥的加密方式,对称密码又称公共密钥密码、传统密码、私钥密码、共享密钥密码等等。 公钥密码:公钥密码是指加密和解密使用不同的密钥的加密方式,因此也被称为非对称密码 对面密码和公钥密码结合起来的方式称为混合密码系统 其他密码技术 单向散列函数:为了防止软件被篡改,软件开发者会在发布软件时同时公布该软件的散列值,该值就是使用单向散列函数求出来的

2020-06-08 13:43:28 215

原创 C++ Primer学习纪录(三)标准库string对象

STL类型string 标准库类型string表示可变长的字符序列,使用string首先必须包含string头文件,即include <string>,string定在在命名空间std中,因此可以使用using声明来简化代码(using std:string) 定义和初始化string对象 直接初始化和拷贝初始化 在C++语言中,对于使用等号=的初始化语句,例如上图中的string s2 = s1和string s3 = "value",均是拷贝初始化,编译器将右边的值复制一份到左边的新对象中

2020-06-07 12:17:24 116

原创 C++ Primer学习纪录(二)别名的使用、auto和decltype类型指示符

别名 定义别名有两种方法,一种是从C语言沿用下来的typedef关键词, 还有一种为C++11重新加入的using来对别名进行声明 用法: typedef double wages; typedef wages base, *p; typedef struct TNode { int data; struct TNode *left, *right; } TNode, *TreeNode; // using 的使用 using wages = double; using TreeNode = str

2020-06-06 16:25:20 137

原创 PAT模板——python实现排序算法

闲来无事,借着写排序算法实现一遍复习一下python的语法~ class Sort(object): def __init__(self, array): self.array = array def _swap(self, index_a, index_b): temp = self.array[index_a] self.array[index_a] = self.array[index_b] self.array[ind

2020-05-30 10:34:09 166

原创 PAT刷题模板——最短路径算法

图的最短路径算法 dijkstral算法 dijkstral算法适用于无负权边的图。 邻接矩阵形式 图结构和辅助数组 const int INF = 0x3fffffff; // inf定义为了int的上限 // Cost为边权矩阵; weight为点权,若有则可以使用 int G[MAXN][MAXN], Cost[MAXN][MAXN], weight[MAXN]; // weight_cal若题目中要求点权的累计最大则可使用 cost_cal若题目中要求边权累计最大则可以使用 int dist[M

2020-05-24 11:37:36 215

原创 PAT刷题模板——LCA最近公共祖先

前序+中序找某两个节点的最近公共祖先 根据前序+中序建树的思想找LCA void lca(int root, int start, int end, int a, int b){ // root: pre的根下标 start:中序起始下标 end:中序结束下标 // a和b是需要找到的公共节点 if(start > end) return; // pos定义为map<int, int>, 是值与中序下标之间的映射 int i = pos[pre[root]

2020-05-23 22:53:47 186

原创 PAT刷题模板——BST和AVL树

BST模板 // BST 二叉查询树 typedef struct TNode { int val; struct TNode *left, *right; } TNode; // 插入结点 TNode* insert(TNode *root, int val){ if(root == NULL){ root = new TNode(); root->val = val; root->left = root->right = NULL; } else if(val &

2020-05-23 22:41:08 186

原创 PAT刷题模板——堆

堆 堆(Heap)是计算机科学中一类特殊的数据结构的统称。堆分为大根堆与小根堆。 大根堆定义: 大根堆是一棵完全二叉树 根节点的元素均大于(等于)子节点的元素。 任意一颗子树也均满足1和2的定义 堆的操作–以大根堆为例(基于C++语言) 堆的定义(以下均分为数组定义方式和STL定义方式) int heap[MAXN]; vector<int> heap(MAXN); 建堆 void downAdjust(int heap[], int low, int high){ // heap的in

2020-05-23 22:35:49 173

原创 C++ Primer学习纪录(一)指针和引用与const的结合

C++ Primer学习纪录(一)变量声明和定义的关系复合类型引用一些特殊用法常量引用指针引用指针指针基本操作指针的基本状态空指针和void* 指针指向指针的指针指向常量的指针常量指针const修饰符顶层const和底层const顶层const和底层const的区别constexpr 变量声明和定义的关系 声明(declaration): 语法:extern ** datatype name 声明仅仅是告诉程序,在其他文件中,已经有一个名为 "name"的"datatype"变量被定义 定义(defini

2020-05-23 16:12:26 211

空空如也

空空如也

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

TA关注的人

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