当前位置: 首页 > news >正文

深圳大学计软《面向对象的程序设计》实验15 函数模板和类模板

A. 有界数组模板类(类模板)

题目描述

编写有界数组模板BoundArray(即检查对数组元素下标引用并在下标越界时终止程序的执行),能够存储各种类型的数据。要求实现对数组进行排序的方法sort,及对数组进行查找的方法search

输入

第一行先输入t,表示有t个测试用例

从第二行开始输入每个测试用例的数据。

首先输入数据类型,I表示intD表示doubleC表示char,接着输入数组的元素个数

然后输入每个元素

最后输入要查找的元素

输出

首先输出从小到大排序的元素

然后输出查找元素的结果,找到则输出下标,没找到则输出-1

输入样例1

2
I 2
1 2
2
D 3
3.5 6.2 2.9
2.1

输出样例1

1 2
1
2.9 3.5 6.2
-1

AC代码

#include<bits/stdc++.h>
using namespace std;template<class T>
class BoundArray {int size;T* p;
public:BoundArray() {cin >> size;p = new T[size];for (int i = 0; i < size; i++)cin >> p[i];}~BoundArray(){delete[]p;}void sort() {make_heap(p, p + size);sort_heap(p, p + size);}int search(T key) {for (int i = 0; i < size; i++) {if (key == p[i])return i;}return -1;}void print() {for (int i = 0; i < size; i++)cout << p[i] << " ";cout << endl;}};int main() {int t;cin >> t;while (t--){char ch;cin >> ch;if (ch == 'I') {BoundArray<int>l;l.sort();l.print();int key;cin >> key;cout << l.search(key) << endl;}else if (ch == 'D') {BoundArray<double>l;l.sort();l.print();double key;cin >> key;cout << l.search(key) << endl;}else if (ch == 'C') {BoundArray<char>l;l.sort();l.print();char key;cin >> key;cout << l.search(key) << endl;}}return 0;
}

B. 简单类模板(类模板)

题目描述

定义一个列表类,该列表包含属性:数值列表(用长度为100的数组表示),数据长度(实际的数据个数);包含的方法:初始化、插入、删除、打印,方法定义为:

1)初始化,接受外来参数,把数据保存在数值列表中,未使用的列表部分全部初始化为-1

2)插入,接受外来参数的插入位置和插入数值,插入位置从0开始计算,注意从插入位置开始,原有数据都要往后移动一位,且数据长度+1

3)删除,接受外来参数的删除位置,删除位置从0开始计算,注意从删除位置后一位开始,原有数据都要往前移动一位,且数据长度-1

4)打印,把包含的数据按位置顺序输出一行,数据之间单个空格隔开

使用类模板的方法,使得这个类支持整数int类型和浮点数double类型

输入

第一行先输入参数n表示有n个数据,接着输入n个整数

第二行输入两个参数,表示插入位置和插入数值,数值为整数

第三行输入删除位置

第四行先输入参数n表示有n个数据,接着输入n个浮点数

第五行输入两个参数,表示插入位置和插入数值,数值为浮点数

第六行输入删除位置

输出

针对头三行输入,分别执行初始化、插入操作和删除操作,调用打印方法输出列表包含的整数数据

针对接着的三行输入,分别执行初始化、插入操作和删除操作,调用打印方法输出列表包含的浮点数数据

输入样例1

5 11 22 33 44 55
2 888
4
5 1.1 2.2 3.3 4.4 5.5
2 88.8
3

输出样例1

11 22 888 33 55
1.1 2.2 88.8 4.4 5.5

#include<bits/stdc++.h>
using namespace std;template<class T>
class List {vector<T>v;
public:List() {int len;cin >> len;v.resize(len);for (auto& it : v)cin >> it;}void insert(int index, T value) {v.insert(v.begin() + index, value);}void remove(int index) {v.erase(v.begin() + index);}void print() {for (int i = 0; i < v.size(); i++) {if (i)cout << " ";cout << v[i];}cout << endl;}};int main() {List<int>l1;int idx, value;cin >> idx >> value;l1.insert(idx, value);cin >> idx;l1.remove(idx);l1.print();List<double>l2;int idx1;double value1;cin >> idx1 >> value1;l2.insert(idx1, value1);cin >> idx1;l2.remove(idx1);l2.print();return 0;
}

C. 矩阵类模板(类模板)

题目描述

设计一个矩阵类模板Matrix,支持任意数据类型的数据。

要求至少包含2个成员函数:矩阵转置函数transport、以及打印输出函数print

编写main函数进行测试,调用类的成员函数完成转置和输出。

输入

第一行先输入t,表示有t个测试用例

从第二行开始输入每个测试用例的数据。

首先输入数据类型,I表示int,D表示double,C表示char,接着输入两个参数m和n,分别表示矩阵的行和列

接下来输入矩阵的元素,一共m行,每行n个数据

输出

输出转置后的矩阵

输入样例1

2
I 2 3
1 2 3
4 5 6
C 3 3
a b c
d e f
g h i

输出样例1

1 4
2 5
3 6
a d g
b e h
c f i

AC代码

#include<bits/stdc++.h>
using namespace std;template<class T>
class Matrix {vector<vector<T>>v;int n, m;
public:Matrix() {cin >> n >> m;v.resize(n);for (int i = 0; i < n; i++)v[i].resize(m);for (int i = 0; i < n; i++)for (int j = 0; j < m; j++)cin >> v[i][j];}void transport() {vector<vector<T>>v1;v1.resize(m);for (int i = 0; i < m; i++)v1[i].resize(n);for (int i = 0; i < n; i++)for (int j = 0; j < m; j++)v1[j][i] = v[i][j];v = v1;swap(n, m);}void print() {for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {if (j)cout << " ";cout << v[i][j];}cout << endl;}}
};int main() {int t;cin >> t;while (t--){char ch;cin >> ch;if (ch == 'I') {Matrix<int>m;m.transport();m.print();}else if (ch == 'D') {Matrix<double>m;m.transport();m.print();}else if (ch == 'C') {Matrix<char>m;m.transport();m.print();}}return 0;
}

D. 排序函数模板

题目描述

编写一个对n个元素的数组升序排序的函数模板mysort,其中元素类型可以是基本数据类型,也可以是点对象(按点到原点的距离比较)。(要求不能用C++提供的sort函数模板)

输入

第一行输入测试次数

每次测试输入二行,第1行先输入一个大写字母表示数组类型,I表示整数类型,S表示字符串型,D表示双精度数类型,P表示点,最后输入n表示数组长度。第2行输入n个数据。

输出

每次测试输出一行排序后的结果

输入样例1

4
I 10
15 3 51 27 9 35 78 14 65 8
D 3
-11.3 25.42 13.2
P 6
1.1 2.2 2.4 -6.5 12 32 1.2 1.3 -3.5 0.1 9.2 1.1
S 4
sandy david eason cindy

输出样例1

3 8 9 14 15 27 35 51 65 78
-11.3 13.2 25.42
(1.2, 1.3) (1.1, 2.2) (-3.5, 0.1) (2.4, -6.5) (9.2, 1.1) (12.0, 32.0)
cindy david eason sandy

AC代码

#include<bits/stdc++.h>
using namespace std;template<class T>
class MySort;class Point {double x, y;template<class T>class MySort;
public:Point() {}double getDistance() const {return sqrt(x * x + y * y);}bool operator <(const Point& p)const {return getDistance() < p.getDistance();}friend ostream& operator << (ostream& output, Point& p) //定义运算符“<<”重载函数{output << fixed << setprecision(1) << "(" << p.x << ", " << p.y << ")";return output;}friend istream& operator >> (istream& input, Point& p) //定义运算符“<<”重载函数{input >> p.x >> p.y;return input;}};template<class T>
class MySort {vector<T>v;class Point;
public:MySort() {int size;cin >> size;v.resize(size);for (auto& it : v) {cin >> it;}make_heap(v.begin(), v.end());sort_heap(v.begin(), v.end());for (int i = 0; i < size; i++) {cout << v[i] << " ";}cout << endl;}
};int main() {int t;cin >> t;while (t--){char ch;cin >> ch;if (ch == 'I') {MySort<int>s;}else if (ch == 'D') {MySort<double>s;}else if (ch == 'S') {MySort<string>s;}else if (ch == 'P') {MySort<Point>s;}}return 0;
}

E. 对象相加函数模板

题目描述

时钟类CClock有时、分、秒;人民币类CRmb有元、角、分三个数据成员。试为这种类型的类对象定义一个两两相加的函数模板add,包括三个参数:2个对象和一个int表示进制。(要求不能用函数重载的方法)

主函数如下所示:

CClock c1(…), c2(…), c;

c = add(c1, c2, 60);

cout << c << endl;

CRmb r1(…), r2(…), r;

r = add(r1, r2, 10);

cout << r << endl;

输入

第一个时钟对象的时分秒

第二个时钟对象的时分秒

第一个人民币对象的元角分

第二个人民币对象的元角分

输出

两个时钟对象相加的结果

两个人民币对象相加的结果

输入样例1

15 34 25
7 25 36
5 6 7
3 4 5

输出样例1

23 0 1
9 1 2

AC代码

#include<bits/stdc++.h>
using namespace std;class CClock {int h, m, s;
public:CClock() {cin >> h >> m >> s;}CClock(int h, int m, int s) :h(h),m(m),s(s) {}template<class T>friend T add(T, T, int);int getSumSecond(int n) {return s + m * n + h * n * n;}friend CClock add(CClock& a, CClock& b, int n) {int sum = a.getSumSecond(n) + b.getSumSecond(n);int hour = sum / (n * n);sum = sum % (n * n);int minu = sum / n;int sece = sum % n;return CClock(hour, minu, sece);}void print() {cout << h << " " << m << " " << s;}friend ostream& operator << (ostream& output, CClock& p) //定义运算符“<<”重载函数{p.print();return output;}};class RMB {int y, j, f;
public:RMB(int y, int j, int f) :y(y), j(j), f(f){}RMB() { cin >> y >> j >> f; }int getSumFen(int n) {return f + j * n + y * n * n;}friend RMB add(RMB& a, RMB& b, int n) {int sum = a.getSumFen(n) + b.getSumFen(n);int hour = sum / (n * n);sum = sum % (n * n);int minu = sum / n;int sece = sum % n;return RMB(hour, minu, sece);}void print() {cout << y << " " << j << " " << f;}friend ostream& operator << (ostream& output, RMB& p) //定义运算符“<<”重载函数{p.print();return output;}template<class T>friend T add(T, T, int);
};template<class T>
T add(T a, T b, int n) {return add(a, b, n);
}int main() {CClock c1, c2;CClock c = add(c1, c2, 60);cout << c << endl;RMB r1, r2;RMB r = add(r1, r2, 10);cout << r << endl;return 0;
}

F. 逆序输出函数模板

题目描述

编写一个逆序输出数据的函数模板reverse(复数的逆序是实部虚部置换)。

输入

第一行输入测试次数

每次测试输入一行,先输入一个大写字母表示数据类型, I表示整型、D表示双精度型、S表示string类型字符串、C表示复数类对象,最后输入数据。

输出

每次测试输出一行,逆序排列的数据

输入样例1

5
I 123456
D -235.172
S thisisatest
C -123 456
C 123 -456

输出样例1

654321
-271.532
tsetasisiht
456-123
-456+123

提示

可用类型转换函数将复数类对象转换为string.模板函数内采用如下所示的方法可将数值型变量a转换成string型变量s:#include “sstream”…ostringstream os;string s; os << a; s = os.str();

#include<bits/stdc++.h>
using namespace std;class Complex {double r, i;
public:Complex() { cin >> r >> i; }friend ostream& operator<<(ostream& output, Complex& c) {output << c.r;if (!c.i)return output;if (c.i > 0)cout << "+";cout << c.i;return output;}friend istream& operator>>(istream& input, Complex& c) {input >> c.r >> c.i;return input;}friend void reverse(Complex&c) {swap(c.r, c.i);cout << c << endl;}};template<class T>
void reverse(T t) {string s = to_string(t);//if (typeid(t) == typeid(double)) {//	while (*s.rbegin()=='0'){//		s.pop_back();//	}//}reverse(s.begin(), s.end());if (*s.rbegin() == '-') {s.pop_back();cout << "-";}if (typeid(t) == typeid(int)) {cout << stoi(s) << endl;return;}if (typeid(t) == typeid(double)) {cout << stod(s) << endl;return;}cout << s << endl;
}void reverse(string &s) {reverse(s.begin(), s.end());cout << s << endl;
}int main() {int t;cin >> t;while (t--){char ch;cin >> ch;string t1;if (ch == 'I') {int t1;cin >> t1;reverse<int>(t1);}else if (ch == 'D') {double t1;cin >> t1;reverse<double>(t1);}else if (ch == 'S') {string t1;cin >> t1;reverse(t1);}else {Complex t1;reverse(t1);}}}

G. 链表类模板

题目描述

结点数据类型为int的单链表类CIntList可定义如下:

class CNode

{

public:

int data;

CNode *next;

};

class CIntList

{

private:

CNode *head;

public:

CIntList();

void append(int a); //加到链表最后

void insert(int a, int n); //在第n个结点后加

void remove(int n); //移除第n个结点

int get(int n); //返回第n个结点的数据

void set(int a, int n); //将第n个节点的数据改成a

void print();

~CIntList();

};

试将其改成结点数据类型用参数表示的类模板CList。

输入

第一行输入测试次数

每次测试输入5行,格式为:

数据类型(I:int, D:double, S:string) 数据个数n 数据1 数据2 … 数据n

插入节点号(0表示插在第1个结点前面) 数据

返回结点号

删除结点号

修改结点号 数据

输出

每次测试输出二行.第1行输出返回操作获得的数据(如出错则输出error),第2行输出所有操作后链表全部结点的数据.

输入样例1

3
I 5 2 3 5 7 3
1 40
7
7
6 -10
D 6 1.1 2.3 10.05 0.0 -1.8 5.9
4 60.4
5
1
3 -3.7
S 4 this is a test.
0 good
1
8
4 work

输出样例1

error
2 40 3 5 7 -10
60.4
2.3 10.05 -3.7 60.4 -1.8 5.9
good
good this is work test.

AC代码

#include<bits/stdc++.h>
using namespace std;template<class T>
struct CNode
{T data;CNode<T>* next;CNode() { next = NULL; }CNode(T d, CNode<T>* n = NULL) {data = d;next = n;}
};template<class T>
class List {int len;CNode<T>* head;
public:List() {cin >> len;head = new CNode<T>;CNode<T>* p = head;for (int i = 0; i < len; i++) {p->next = new CNode<T>;p = p->next;cin >> p->data;}}void append(T a) {CNode<T>p = head;while (p) {p = p->next;}p = new CNode<T>(a);len++;}void insert(T a, int n) {if (n < 0 || n > len)return;CNode<T>* p = head;for (int i = 0; i < n; i++) {p = p->next;}CNode<T>* s = new CNode<T>(a, p->next);p->next = s;len++;}void remove(int n) {if (n < 0 || n >= len)return;CNode<T>* p = head;for (int i = 0; i < n; i++) {p = p->next;}CNode<T>* s = p->next;p->next = s->next;delete s;len--;}void set(T a, int n) {if (n < 0 || n >= len)return;CNode<T>* p = head->next;for (int i = 0; i < n; i++) {p = p->next;}p->data = a;}void print() {CNode<T>* p;for (p = head->next; p->next; p = p->next)cout << p->data << " ";cout << p->data << endl;}T get(int n) {CNode<T>* p = head->next;for (int i = 0; i < n; i++)p = p->next;return p->data;}int getSize() { return len; }
};int main() {int t;cin >> t;while (t--){char ch;cin >> ch;if (ch == 'I') {List<int>l;int a;int n;cin >> n >> a;l.insert(a, n);cin >> n;if (n<1 || n>l.getSize()) {puts("error");}else {cout << l.get(n - 1) << endl;}cin >> n;l.remove(n - 1);cin >> n >> a;l.set(a, n - 1);l.print();}else if (ch == 'D') {List<double>l;double a;int n;cin >> n >> a;l.insert(a, n);cin >> n;if (n<1 || n>l.getSize()) {puts("error");}else {cout << l.get(n - 1) << endl;}cin >> n;l.remove(n - 1);cin >> n >> a;l.set(a, n - 1);l.print();}else if (ch == 'S') {List<string>l;string a;int n;cin >> n >> a;l.insert(a, n);cin >> n;if (n<1 || n>l.getSize()) {puts("error");}else {cout << l.get(n - 1) << endl;}cin >> n;l.remove(n - 1);cin >> n >> a;l.set(a, n - 1);l.print();}}
}

相关文章:

深圳大学计软《面向对象的程序设计》实验15 函数模板和类模板

A. 有界数组模板类&#xff08;类模板&#xff09; 题目描述 编写有界数组模板BoundArray&#xff08;即检查对数组元素下标引用并在下标越界时终止程序的执行&#xff09;&#xff0c;能够存储各种类型的数据。要求实现对数组进行排序的方法sort&#xff0c;及对数组进行查找…...

组播详解及示例代码

写在前面 由于公司业务需要用到组播实现&#xff0c;这里就记录下学习过程。在学习组播之前&#xff0c;我们先来看看另外两种数据包传输方式&#xff1a;单播和广播。 单播&#xff1a;简单来说就是数据一对一发送&#xff0c;如果需要给多个主机发送数据时&#xff0c;就需…...

C语言-qsort函数示例解析

一.qsort函数是什么stdlib.h头文件下的函数qsort()函数&#xff1a;是八大排序算法中的快速排序&#xff0c;能够排序任意数据类型的数组其中包括整形&#xff0c;浮点型&#xff0c;字符串甚至还有自定义的结构体类型。qsort函数实现对不同元素的排序主要就是通过对compar函数…...

一些Linux内核内存性能调优笔记!

前言 在工作生活中&#xff0c;我们时常会遇到一些性能问题&#xff1a;比如手机用久了&#xff0c;在滑动窗口或点击 APP 时会出现页面反应慢、卡顿等情况&#xff1b;比如运行在某台服务器上进程的某些性能指标&#xff08;影响用户体验的 PCT99 指标等&#xff09;不达预期…...

【JVM】逃逸分析

开发者都知道&#xff0c;基本上所有对象都是在堆上创建。但是&#xff0c;这里还是没有把话说绝对哈&#xff0c;指的是基本上所有。昨天一位朋友在聊天中&#xff0c;就说了所有对象都在堆中创建&#xff0c;然后被朋友一阵的嘲笑。 开始我们的正文&#xff0c;我们今天来聊聊…...

C51---震动传感器控制LED灯亮灭

1.example #include "reg52.h" sbit led1 P3^7;//原理图中led1指向P3组IO口的P3.7口 sbit vibrate P3^3;//Do接到了P3.3口 void Delay3000ms() //11.0592MHz { unsigned char i, j, k; //_nop_(); i 22; j 3; k 227; do { …...

使用 JaCoCo 生成测试覆盖率报告

0、为什么要生成测试覆盖率报告 在我们实际的工作中&#xff0c;当完成程序的开发后&#xff0c;需要提交给测试人员进行测试&#xff0c;经过测试人员测试后&#xff0c;代码才能上线到生产环境。 有个问题是&#xff1a;怎么能证明程序得到了充分的测试&#xff0c;程序中所…...

windows下neo4j安装及配置,并绘制人物关系图谱

neo4j安装及配置&#xff0c;绘制人物关系图谱 先升级pip&#xff0c;安装py2neo pip install py2neo2021.0.1依赖 jdk1.8&#xff0c; neo4j 3.xx&#xff1b; 或者jdk18&#xff0c;neo4j 4.x&#xff0c;5.x&#xff1b; 官网下载了neo4j4.x,5.x 因为jdk版本原因都不行&am…...

【Spring6】IoC容器之基于XML管理Bean

3、容器&#xff1a;IoC IoC 是 Inversion of Control 的简写&#xff0c;译为“控制反转”&#xff0c;它不是一门技术&#xff0c;而是一种设计思想&#xff0c;是一个重要的面向对象编程法则&#xff0c;能够指导我们如何设计出松耦合、更优良的程序。 Spring 通过 IoC 容…...

Warshall算法求传递闭包及Python编程的实现

弗洛伊德算法-Floyd(Floyd-Warshall)-求多源最短路径&#xff0c;求传递闭包 Floyd算法又称为插点法&#xff0c;是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法&#xff0c; 与Dijkstra算法类似。该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大…...

AcWing第 93 场周赛

4867. 整除数 给定两个整数 n,k&#xff0c;请你找到大于 n 且能被 k 整除的最小整数 x。 输入格式 共一行&#xff0c;包含两个整数 n,k。 输出格式 输出大于 n 且能被 k 整除的最小整数 x。 数据范围 前 4 个测试点满足 1≤n,k≤100。 所有测试点满足 1≤n,k≤109。 …...

计及需求响应的粒子群算法求解风能、光伏、柴油机、储能容量优化配置(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密…...

利用Nginx给RStudio-Server配置https

前篇文档&#xff0c;我这边写了安装RStudio-Server的方法。默认是http的访问方式&#xff0c;现在我们需要将其改成https的访问方式。 1、给服务器安装Nginx&#xff1a;参照之前的安装Nginx的方法。 2、创建/usr/local/nginx/ssl目录&#xff1a; mkdir /usr/local/nginx/ss…...

YOLOv7实验记录

这篇博客主要记录博主在做YOLOv7模型训练与测试过程中遇到的一些问题。 首先我们需要明确YOLO模型权重文件与模型文件的使用 其实在github的readme中已经告诉我们使用方法&#xff0c;但我相信有很多像博主一样眼高手低的人可能会犯类似的错误。 训练 首先是训练时的设置&…...

用Python获取史瓦西时空中克氏符的分量

文章目录三维球面坐标史瓦西时空三维球面坐标 Einsteinpy中提供了克氏符模型&#xff0c;可通过ChristoffelSymbols获取。简单起见&#xff0c;先以最直观的三维球面为例&#xff0c;来用Einsteinpy查看其克氏符的表达形式。 三维球面的度规张量可表示为 g001g11r2g22r2sin⁡…...

QML编码约定

QML中的国际化&#xff1a; QML使用以下函数来将字符串标记为可翻译的 qsTr()qsTranslate()qsTrld()QT_TR_NOOP()QT_TRANSLATE_NOOP()QT_TRID_NOOP最常用的还是qsTr&#xff08;&#xff09; string qsTr&#xff08;string sourceText&#xff0c; string disambiguation&…...

【Linux】安装Linux操作系统具体步骤

1). 选择创建新的虚拟机 2). 选择"典型"配置 3). 选择"稍后安装操作系统(S)" 4). 选择"Linux"操作系统,"CentOS7 64位"版本 5). 设置虚拟机的名称及系统文件存放路径 6). 设置磁盘容量 7). 自定义硬件信息 8). 启动上述创建的新虚拟机…...

前端ES6异步编程技术——Promise使用

Promise是什么 官方的定义是&#xff1a;Promise是ES6新推出的用于进行异步编程的解决方案&#xff0c;旧方案是单纯使用回调函数来解决的。对于开发人员来说&#xff0c;我们把promise当作一个普通的对象即可&#xff0c;使用它可以用来封装一个异步操作并可以获取其成功/失败…...

Kotlin实现简单的学生信息管理系统

文章目录一、实验内容二、实验步骤1、页面布局2、数据库3、登录活动4、增删改查三、运行演示四、实验总结五、源码下载一、实验内容 根据Android数据存储的内容&#xff0c;综合应用SharedPreferences和SQLite数据库实现一个用户信息管理系统&#xff0c;强化对SharedPreferen…...

413. 等差数列划分

413. 等差数列划分 如果一个数列 至少有三个元素 &#xff0c;并且任意两个相邻元素之差相同&#xff0c;则称该数列为等差数列。 例如&#xff0c;[1,3,5,7,9]、[7,7,7,7] 和 [3,-1,-5,-9] 都是等差数列。 给你一个整数数组 nums &#xff0c;返回数组 nums 中所有为等差数…...

设计模式七大原则

一、设计模式概念 1.1 软件设计模式的产生背景 "设计模式"最初并不是出现在软件设计中&#xff0c;而是被用于建筑领域的设计中。 1977年美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫亚历山大&#xff08;Christopher Alexander&#x…...

【Mybatis系列】Mybatis常见的分页方法以及源码理解

Mybatis-Plus的selectPage 引入依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version></dependency>添加分页插件 Configuration public class My…...

Java面向对象:多态特性的学习

本文介绍了Java面向对象多态特性, 多态的介绍. 多态的实现条件–1.发生继承.2.发生重写(重写与重载的区别)3.向上转型与向下转型.4.静态绑定和动态绑定5. 实现多态 举例总结多态的优缺点 避免在构造方法内调用被重写的方法… Java面向对象:多态特性的学习一.什么是多态?二.多态…...

id函数 / 可变类型变量 / 不可变类型变量 / +=操作

前言 再说正文之前&#xff0c;需要大家先了解一下对象&#xff0c;指针和引用的含义&#xff0c;不懂得同学可以参考我上一篇博客“(12条消息) 引用是否有地址的讨论的_xx_xjm的博客-CSDN博客” 正文 一&#xff1a;python中一切皆对象 “python中一切皆对象”这句话我相信…...

aws apigateway 使用apigateway集成lambda

参考资料 代理集成&#xff0c;https://docs.aws.amazon.com/zh_cn/apigateway/latest/developerguide/api-gateway-create-api-as-simple-proxy-for-lambda.html非代理集成&#xff0c;https://docs.aws.amazon.com/zh_cn/apigateway/latest/developerguide/getting-started-…...

Linux SPI 驱动实验

目录 一、Linux 下 SPI 驱动框架简介 1、SPI 主机驱动 2、SPI 设备驱动 SPI 设备数据收发处理流程 3、SPI 设备和驱动匹配过程 二、添加SPI 设备信息 1、添加 ICM20608 所使用的 IO 2、 在 ecspi3 节点追加 icm20608 子节点 三、编写 ICM20608 驱动 1、修改makefile​…...

[1.4]计算机系统概述——操作系统的体系结构

第一章 计算机系统概述 操作系统的体系结构 大内核/单内核/宏内核微内核 通过之前的学习&#xff0c;我们知道计算机系统的层次结构是这样的。 但是操作系统的内部其实还可以再进一步地划分。 一部分是内核的功能&#xff0c;一部分是非内核的功能。 操作系统最核心的功能&…...

FPGA的GigE Vision IP相机图像采集方案设计,转换为千兆UDP,支持10G MAC

1 概述 GigE Vision是一个比较复杂的协议&#xff0c;要在FPGA中完全实现具有较大的难度。如果FPGA作为接收端希望实现GigE Vision相机的配置和图像采集功能&#xff0c;则只需要实现其中小部分功能即可。本文对原有GigE Vision协议的结构进行了裁剪&#xff0c;仅保留设备搜索…...

大数据相关面试题

linux 常见linux高级命令&#xff1f; top、iotopnetstatdf -hjmap -heaptarrpmps -efshell 用过的shell工具&#xff1f; awk Awk 命令详解 - 简书 awk是行处理器: 相比较屏幕处理的优点&#xff0c;在处理庞大文件时不会出现内存溢出或是处理缓慢的问题&#xff0c;通常用来…...

AI绘画第二步,抄作业复现超赞的效果!

上一篇&#xff0c;讲了如何安装AI绘画软件&#xff0c;但是装完后发现生成效果很渣&#xff01;而网上那些效果都很赞。真的是理想很丰满&#xff0c;现实很骨感。今天就是来聊聊如何抄作业&#xff0c;最大程度的还原那些超赞的效果。换一种说法就是&#xff0c;教大家如何使…...