自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 学生公寓管理系统

学生公寓管理系统

2022-06-19 08:34:43 745 1

原创 8万字带你入门Rust

Rust📚 学习建议:先从 整体出发,不要让自己陷入到细节中去和自己已知的知识建立联系rust 和go一样采用 组合的手段实现代码复用,不要深思为什么不是继承学会阅读源码,从源码中学习Rust设计哲学使用 cargo new 项目名在终端中构建项目使用 cargo build 来构建和运行项目也可以使用 cargo run 来完成编译和运行任务第一个程序:fn main(){ println!("hello world!");}Rust中变量默认都是不可变的,如

2022-05-03 06:00:00 28011 20

原创 Docker学习小记

Docker 安装安装可以在直接在官网查看。官网安装参考手册:https://docs.docker.com/engine/install/centos/Docker 启动systemctl start docker查看 Docker版本:docker version查看安装的镜像:docker images测试运行hellodocker run hello-world卸载Dockersystemctl stop dockeryum -y remove docker-ce do

2022-03-06 15:55:20 594

原创 使用 JAVA 实现数字金字塔

实现像上面的效果: int n = 0,t=0,i=0,k=0; Scanner cin = new Scanner(System.in); System.out.println("请输入一个整数:"); n = cin.nextInt(); k=n; for ( i = 0 ; i < n ;i++ ) {//塔的层数 for(int j =k-1 ; j >0 ; j --) {//打印前半部分空格 System.out.print(" ...

2021-11-28 06:30:00 6669 4

原创 轻松学C++文件操作

无论是读还是写文件都必须要包含头文件fstream 。读写文件都有相同的步骤:创建流对象,打开文件(判断一下是否打开成功),对文件进行读/写操作,关闭文件。写文件: ofstream Sy_sy;//创建流对象 Sy_sy.open("D:\\CLionProjects\\C++代码文件操作存放点\\sy001.txt",ios::out);//out 为写文件而打开文件,in 为读文件而打开文件 //打开文件的路径要用绝对路径 if(!Sy_sy.is_.

2021-11-09 06:00:00 153

原创 C++ override、final、default、delete

override:当重载虚函数时,显式的告诉编译器进行重载,编译器就会检查基函数是否存在这样的虚函数,如果没有就会编译错误:class Base {public: virtual void foo(int x) ;};class Subclass : Base { void foo(int x) override ;//合法,因为基类有与之匹配的虚函数 void foo(float y) override;//错误因为基类中没有和这个匹配的虚函数};final:

2021-11-08 06:30:00 233

原创 C++委托构造和继承构造

委托构造:class A1_{public: A1_(){ this->age = 18; } A1_(string name):A1_() {//这里委托了 A1_ 构造函数来合作构造 this->name = name; } private : int age; string name; };继承构造:class A1_{public: A1_(){ th

2021-11-05 07:00:00 241

原创 C++ back_inserter

插入迭代器是一种向容器中添加元素的迭代器。back_inserter 它定义在头文件 interator中的一个函数。它接受一个指向容器的引用,返回一个与该容器绑定的插入迭代器。vector <int> vec ; //空容量auto it = back_inserter(vec);//向容器中添加元素,它会调用 *it = 99;//容器中现在有一个元素为 99 我直接向空容量的容器插入元素就不会出问题了:vector <int> vec ; //空容.

2021-10-26 08:00:00 2042

原创 C++之 find 、accumulate 、fill、fill_n

标准库定义了一些通用算法(也就是泛型) 它可以用于第个容器上。不过容器有自己自带的算法,就使用容器自带的算法,因为效率会比通用的算法高。大多数算法头文件都定义在头文件 algorthm 中,头文件 numeric中定义了 组数值泛型算法。一般情况下这些算法不直接操作容器,而遍历两个迭代器指定的一个元素范围。find 查找算法:...

2021-10-23 07:30:00 185

原创 C++格式化输出

C++中大多数改变格式状态的操纵符都是设置/复原成对的;一个用来将格式设置为一个新值,另一个用来复原,恢复为正常的默认格式。改变布尔值的格式: cout << true << endl;//输出1 cout << false << endl;//输出0这是没有改变的,输出布尔类型的时候不会直接输出 true 和 false 而把它们转换成 int型输出。我们可以利用 boolalpha 和 noboolalpha 来改变打印它的格式。

2021-10-22 06:00:00 2698

原创 C++生成随机数

随机数通过 随机数引擎类 和 随机数分布类。引擎类可以生成 unsigned(无符号数) 随机数序列;分布类使用一个引擎类生成指定类型的、在给定范围内的、服从特定概率分布的随机数。它们定义在头文件 random 中。随机数引擎:随机数引擎是函数对象类,它们定义了一个调用运算符,该运算符不接受参数并 返回一个随机 unsigned 整数。上代码: default_random_engine e;//生成随机无符号数(原始随机数) int i = 100; for (int i

2021-10-20 12:00:00 4492

原创 C++ bind函数

bind看作一个通用的函数适配器,它接受一个可调用对象,生成一个新的可调用对象来"适应"原对象的参数列表。它定义在头文件 functional 中。auto newCallable = bind( callable , arg_list);一般形式就是上面代码中的形式。(C++ primer 书中)newCallable本身是一个可调用对象, arg_list 是一个逗号分隔的参数列表,对应给定的 callable 的参数。就是我们在调用 newCallable 时,newCallable

2021-10-18 06:00:00 934

原创 C++新特性之显式类型转换

有四个强制类型转换:static_cast 、reinterpret_cast 、 const_cast 、 reinterpret_caststatic_cast 任何具有明确定义的类型转换,只要不包含底层 const ,都可以使用它。int j = 3; float t = 3.14;double u = static_cast<double >(j)/t; // 等价于 double u1 =(double) j/t;把大的类型赋值给较小的类型时或者对于编译器无法自动执行的

2021-10-17 07:00:00 126

原创 C++ 函数指针 和 指针函数

函数指针:直接上代void f1(int a ){ cout<<a<<endl;}int main() { void (*p1) (int b);//定义一个函数指针 p1=f1; p1(999);//输出999 return 0;}上面代码中的定义函数指针的时候 (*p1) 这个括号是必须要的,因为括号的优先级大于星号。如果没有括号就变成了指针函数。指针函数:int * f (int x ){

2021-10-16 06:00:00 76

原创 C++之内联函数和constexpr函数

在函数返回类型前面加上关键字 inline 就可以把函数声明为内联函数:内联说明只是向编译器发出一个请求,编译器可以忽略也可以接受。inline int Numbers(const int num1, const int num2){ return num1 < num2 ? num1 : num2;//比较两个数字的大小并返回小的}想要声明成内联函数的函数一般要满足里面的代码实现不要太复杂,但是又是被频繁调用的函数。constexpr函数:constexpr函数是指

2021-10-15 06:00:00 137

原创 C++之bitset

标准库定义了 bitset 类,使得位运算的使用更为容易,并且能够处理超过最长整形类型大小的集合。 bitset 类定义在头文件 bitset中。它也是一个类模板,定义它的时候,需要声明它包含多少个二进制位:bitset<32> bitu(99);它的大小必须是一个常量表达式,定义的这个是有从0到31共32个二进制位,编号 从0开始的进制位为低位,到结束的二进制位称为高位。...

2021-10-13 08:00:00 365

原创 C++ Lambda表达式

我们可以向一个算法传递任何类别的可调用对象。C++语言中有几种可调用的对象:函数、函数指针、lambda表达式,bind创建的对象以及重载了函数调用运算符的类。lanmbda必须使用尾置返回来指定返回类型。它必须要包含捕获列表和函数体。auto f = [] {return 79;}; //这是一个lambda表达式,大括号里面的分号不能忘记了 cout<<f()<<endl; //调用它输出79如果 lambda 的函数体包含任何单一 return 语

2021-10-13 06:00:00 106

原创 C++之智能指针

在C++中动态内存的管理是通过 new 在动态内存中为对象分配空间并返回一个指向该对象的指针; delete 接受一个动态对象的指针,销毁对象,并释放与之相关联的内存。使用动态内存的时候很容易出问题。新标准提供了两种智能指针类型来管理动态对象:(它们可以自动负责释放所指向的对象)shared_ptr 允许多个指针指向同一个对象;unique_ptr 它独占所指向的对象。还在一个名为 weak_ptr 的伴随类,它是一种弱引用,指向 shared_ptr所管理的对象。它们三个都定义在头文件

2021-10-11 08:00:00 719

原创 C++——聚合类

聚合类使用用户可以直接访问其成员,并具有特殊的初始化语法形式。一个类是聚合类它须要满足以下条件:1. 所有成员都是Public的。2. 没有定义任何构造函数。3. 没有类内初始值。4. 没有基类,也没有 virtual函数。//聚合类struct Data_{ int data; string name;};这里说明一下:struct的权限默认是 public的,而 class的权限默认是 pravite的。初始化它的成员: Data...

2021-10-10 07:00:00 1107

原创 C++之sizeof 运算符

sizeof 运算符返回一条表达式或一个类型所占的字节数(sizeof 运算符满足右结合律)。所得的值是一个 size_t 类型。它有两种形式:int i = 7; sizeof(i); sizeof i;第二种形式,返回表达式结果类型的大小。以下形式有些是例外: int i = 7; int a = 7; int b = 7; cout<<sizeof ( a +b)<<endl; //输出 4 返回的是所占用的字节数 cout<&lt

2021-10-09 07:00:00 288

原创 c/c++数组详解

数组是一种复合类型。由数组的类型、名字、维度构成。其中维度说明了数组中元素的个数,必须大于0,维度在编译的时候一定是可知的,所以维度必须是一个常量表达式。unsigned cnt = 42; //不是常量表达式constexpr unsigned cnt1 = 42; /*是一个常量表达式(声明为constexpr的变量一定是一个常量,必须用常量表达式来初始化)*/int arr[10]; //含有10个整数的数组int* parr[cnt1]; // 含有42个整数指针的数组stri.

2021-10-08 06:00:00 244

原创 C++条件运算符( ? : )

条件运算符就是把简单的 if - else 逻辑嵌入到单个表达式中,使用形式:cond ? expr1 : expr2 ;cond是判断的条件,如果为真就输出expr1 ,否则就输出 expr2;需要注意的是expr1和expr2是两个类型相同或可以转换为某个公共类型的表达式,反正就是它们必须最后是具有相同性质或特点的。用例:检测成绩是否合格:string finalgrade = (grade < 60) ? "fail" : "pass" ;//如果成员合格大于或等于60,表.

2021-10-07 13:00:00 1586

原创 C++之迭代器介绍

迭代器类似于指针类型,可以对对象的间接访问。迭代器有有效和无效之分:有效的迭代器要么指向某一个元素,要么指向容器中尾元素的下一个位置,其他情况都属于无效的。有迭代器的类型同时拥有返回迭代器的成员。最常见的迭代器是:begin()和end(),cbegin和cend(),rbegin()和rend()....由上面可以知道就它们两个就有多个版本,带r的版本返回反向迭代器,带c的版本返回const迭代器。(当我们不需要写访问的时候就应该使用带c的迭代器)其中带c的版本是C++11新引入的,用

2021-10-06 06:00:00 161

原创 C++之vector容器

要想使用vector容器必须包含vector头文件。定义和初始化vector对象:vector<int > v1;//默认初始化,v1中不含有任何元素 vector<int > v2(v1); vector<int > v3 = v1; vector<int > v4 (10,999); vector<int > v5(10); vector<int > v6{1,2,3,4,5,6,7,8,9,10}; vect

2021-10-05 10:00:00 102

原创 C++中的string

定义和初始化string对象:string s1; //默认初始化,是一个空字符串string s2 = s1 ; //s2是s1的副本//等价于 string s2(s1);string s3 = "hello world !" ; //初始化为s3为后面的双引号里面的内容//等价于 string s3("hello world !") ;string s4(10,'s'); //初始s4的内容为10个s ssssssssssstring s5 = "hello "; //拷贝初始化

2021-10-05 08:00:00 97

原创 C++primer——预处理器概述(#ifndef、#define、#indef、#endif)

确保头文件多次包含仍能安全工作的常用技术是预处理器。C++程序还会用到一项预处理功能的头文件保护符,头文件保护符依赖于预处理变量。预处理变量有两种状态:已定义和末定义。#define指令把一个名字设定为预处理变量。#ifdef和#ifndef这两个分别检查某个指定的预处理变量是否已定义:#ifdef当且仅当变量已定义时为真,#ifndef当且仅当变量末定义时为真。一但上面检查为真,就会执行后续操作直到遇到#endif指令为止。例如:#ifndef SALES_DATA_H#d

2021-10-04 07:00:00 851

原创 C++中计算各个语句的执行时间是多少?

以下程序中的clock()函数,设置一个开始时间,然后再设置一个结束时间,利用结束时间减去开始时间,就可以得到那个语句所执行的时间。它的返回值单位是毫秒。如果执行时间太短,可以忽略不计,它会返回0。#include <iostream>using namespace std;#include "string"#include "ctime"#include "vector"#include "algorithm"int main() {vector<int>

2021-10-03 06:00:00 770

原创 C++之类型别名和auto类型说明符、decltype类型

类型别名:使用类型另外一般就是让复杂的名字变得更简单。传统方法是使用typedef关键字:typedef double wages; //现在的wages是double的同义词wages hight=3.14; //正确,因为wages是double的别名 等价于 double hight = 3.14;typedef wages base,*p ; //basr是double的同义词,重要的是p是double*的同义词base sy001 = 3.14;p sy003=&sy

2021-10-02 06:30:00 143

原创 java字符串中查找单个字符(两种方法实现)

这是利用单个字符的比较方式,通过循环依次去比较字符串的所有字符://用于查找输入字符串的字符 Scanner sycin = new Scanner(System.in); System.out.println("请输入你的英文名字:"); String name;//记住这个String开头的S一定要大写,不能小写否则没有用 name = sycin.next();//输入英文名字 System.out.println(

2021-10-01 06:00:00 11010

原创 C++之常量表达式和 constexpr

常量表达式是指值不会改变并且在编译过程就能得到计算结果的表达式。字面值和用常量表达式初始化的const对象也是常量表达式。const int mar_files = 20; //常量表达式const int limit = mar_files +1 ; //常量表达式int staff_size = 27 ; //这是一个普通的Int型数据,不是常量表达式const int sz = get_size(); //这不是一个常量表达式,因这sz的值要到具体运行时才能够得到,而常量表达式的值是要

2021-09-30 10:13:43 171

原创 C++ primer知识点总结(基础部分——变量和基本类型六千总结)

一、输入与输出C++语言并没有定义任何输入输出语句,而提供一个全面的标准库来提供IO机制。iostream包含两个基础类型:istream和ostream分别表示输入和输出。cin(istream)为标准输入;cout(ostram)为标准输出;cerr和clog(ostream),cerr用来输出警告和错误信息,clog用来输出程序运行时的一般性信息。 std::cout<<"ostream:"<<std::endl;//输出 int i=0; s

2021-09-29 06:00:00 391

原创 java在字符串中查找单个字符(后有javaAPI中文文档)

这个程序的作用是:在输入的英文字符串中,查找你想要查找的字母:还有一种方法是利用string类的方法:indexof也可以实现同样的功能,我会在后面给出,我是一名刚学习java语言的新手,有什么错误,请各位指出,谢谢!接下来给大家中文文档:中文链接:链接:https://pan.baidu.com/s/1yA5YBt_MzN_ssu4-FRXXLQ提取码:0z1b英文链接:链接:https://pan.baidu.com/s/1LBqBVThEcz2YQ8nO56rD7w提取码:l...

2021-09-27 15:49:53 239

空空如也

空空如也

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

TA关注的人

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