C++核心编程--类篇
C++核心编程
1.内存分区模型
C++程序在执行时,将内存大方向分为4个区域
意义:不同区域存放数据,赋予不同的生命周期,更能灵活编程
- 代码区:存放函数体的二进制代码,由操作系统进行管理的
- 全局区:存放全局变量和静态变量以及常量
- 栈区:由编译器自动分配释放,存放函数的参数值,局部变量等
- 堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收
1.1、程序运行前
代码区
:
- 存放CPU执行的
机器指令
- 代码区是共享的,共享的目的是为了频繁被执行的程序
- 代码区是只读的,防止程序以外地修改它的指令
全局区
全局变量
和静态变量
存放在此- 全局区包含了
常量区
- 该区域数据在程序结束后操作系统自动释放
1.2、程序运行后
栈区
:
不要返回局部变量地址
,栈区开辟的数据会被编译器自动释放
#include<iostream>
using namespace std;int* func() {int a = 10; //局部变量return &a; //返回局部变量的值
}int main() {int* p = func();cout << *p << endl; //编译器会自动保存一次正确的值cout << *p << endl;cout << *p << endl;system("pause");return 0;
}
堆区
:
- 由我们自己开辟内存,我们不结束程序,不会释放
#include<iostream>
using namespace std;int* fun() {//new关键字,可以将数据开辟到堆区int * a = new int(10);return a;
}int main() {int * p = fun();cout << *p << endl;cout << *p << endl;cout << *p << endl;system("pause");return 0;
}
1.3、new关键字
在堆区中开辟数据,可以使用
new
关键字利用new创建的数据,会返回该数据对应的类型的指针
语法: new 数据类型
- 开辟数据后可以手动释放,利用
delete
#include<iostream>
using namespace std;int* fun() {//new关键字,可以将数据开辟到堆区int * a = new int(10);return a;
}int main() {int * p = fun();cout << *p << endl;cout << *p << endl;//释放数据delete p;cout << *p << endl;system("pause");return 0;
}
这里只会输出打印俩个P数据
- 数组同理
语法 int * arr = new int[10];
delete [] arr
void fun() {//new关键字,可以将数据开辟到堆区//int * a = new int(10);//return a;int* arr = new int[10];for (int i = 0; i < 10; i++){arr[i] = i + 100;}for (int i = 0; i < 10; i++){cout << arr[i] << endl;}//删除数组delete [] arr;
}
2、引用
作用:给变量起别名
语法:
数据类型 &别名 = 原名
注意:一旦初始化,不可以更改,不能再次修改别名指向另一个
本质:引用的本质在C++内部实现是个指针常量
#include<iostream>
using namespace std;
int main() {int a = 10;//给a取个别名bint &b = a;cout << b << endl;//利用别名修改a的值b = 100;cout << b << endl;system("pause");return 0;
}
2.1、引用做函数参数
作用
:函数传参时,可以利用引用的技术让形参修饰实参
优秀
:可以简化指针修改实参
//交换
void swap01(int& a, int& b) {int temp = a;a = b;b = temp;
}#include<iostream>
using namespace std;
int main() {int a = 10;int b = 20;swap01(a, b);cout << "交换后A:" << a << endl;cout << "交换后B:" << b << endl;system("pause");return 0;
}
2.2、引用做函数返回值
作用
:作为返回值存在
注意
:不要返回局部变量引用
用法
:函数调用作为左值(左边的值)
- 返回局部变量情况(错误)
int& test02() {int a = 10;return a;
}
int main() {int& b = test02();cout << b << endl;//编译器会做一次预存,后面就会出错cout << b << endl;cout << b << endl;system("pause");return 0;
}
-
正确做法
int & test02() {static int a = 10; //静态变量,存放在全局区return a; }
2.2、常量引用
用来修饰形参,防止误操作
//用来修饰形参
void printA(const int & a) {//a = 100; 这里就不能修改acout << "值为:" << a << endl;
}
3、函数高级
3.1、函数的默认参数
语法: 返回值类型 函数名 (形参 = 默认值){}
//设置了俩个默认参数
int func(int a, int b = 10, int c = 30) {return a + b + c;
}int main() {int a = func(10);cout << a << endl;system("pause");return 0;
}
注意
- 设置默认参数从这个位置
往后
的每个参数都必须有默认参数,否则报错 这里的C也必须有默认参数
- 如果函数声明有默认参数,函数实现就不可能有默认参数
声明和实现只能有一个有参数
//定义一个函数
//声明
int func2(int a = 10, int b = 10);
//实现
int func2(int a = 10, int b = 10) {return a + b;
}int main() cout << func2(10, 20) << endl;system("pause");return 0;
}
3.2、函数占位参数
语法:返回值类型 函数名 (数据类型){}
void func(int a, int) {cout << "1111" << endl;
}
- 占位参数可以有默认值
void func(int a, int = 10) {cout << "1111" << endl;
}
3.3、函数重载概述
作用:函数名可以相同,提高复用性
函数重载的满足条件
:
- 同一作用域下
- 函数名称相同
- 函数参数
类型不同
或者个数不同
或者顺序不同
注意:
函数的返回值不可以作为函数重载的条件
#include<iostream>
using namespace std;//函数重载
//可以让函数名相同,提高复用性
//以下俩个均在全局作用域下
void func() {cout << "第一个方法" << endl;
}
//函数参数`类型不同`
void func(int a) {cout << "第二个方法" << endl;
}int main() {func();system("pause");return 0;
}
根据传入的参数不同,可以调用不同的参数的相同名的方法
注意:
函数的返回值不可以作为函数重载的条件
3.3.1、函数重载的注意事项
-
引用作为重载条件
-
函数重载碰到函数默认参数
- 引用作为重载条件
//引用做重载的条件
void func(int& a) {cout << "引用调用" << endl;
}void func(const int& a) {cout << "常量引用调用" << endl;
}int main() {int a = 10;func(a);//这里的直接插入10会生成一个临时变量赋给const int// int temp = 10;// const int = temp;func(10);system("pause");return 0;
}
- 函数重载碰到函数默认参数
//函数重载碰到函数默认参数
void func2(int a, int b = 10) {cout << "方法1" << endl;
}
void func2(int a) {cout << "方法2" << endl;
}int main() {//这里会报错func2(10);system("pause");return 0;
}
4、类和对象
c++面向对象的三大特征:封装、继承、多态
4.1、封装
意义:
- 将属性和行为作为一个整体,表现生活中的事务
- 将属性和行为加以权限控制
- 在设计类的时候,属性和行为写在一起,表现事务
语法:
class 类名{ 访问权限: 属性 / 行为}
#include<iostream>
using namespace std;
//eg:设计一个圆的类 求圆的周长//定义常量
const double PI = 3.14;class Cricle
{//访问权限 公共的
public://定义一个半径int m_r;//获取周长double CricleZC() {return 2 * PI * m_r;}
};int main() {//实例化 一个对象Cricle cr;//给对象属性赋值cr.m_r = 10;/cout << "周长为:" << cr.CricleZC() << endl;system("pause");return 0;
}
- 可利用方法去间接修改属性的值
class Student {//访问权限
public:string name;int St_num;void pr_inf() {cout << "姓名:" << name << '\n' << "学号:" << St_num << endl;}//给姓名赋值void setName(string nm) {name = nm;}void setSt_num(int num) {St_num = num;}};
4.1.1、封装的访问权限
访问权限分为三种:
- public 公共权限
- protected 保护权限
- private 私有权限
-
public 公共权限--------类内可以访问 类外可以访问
-
protected 保护权限--------类内可以访问 类外不可以被访问 (子类可以访问父类的保护内容)
-
private 私有权限--------类内可以访问 类外不可以被访问 (子类不可以访问父类的私有内容)
class Person
{
public://公共权限string m_Name;protected://保护权限string m_car;private://私有权限int m_id;
};int main() {Person p1;p1.m_Name = "zy";//类内可以访问 类外不可以被访问//p1.m_car = "zzz";//p1.m_id = 123445;system("pause");return 0;
}
4.1.2、struct和class区别
struct和class的
唯一区别
:默认访问的权限不同
- struct 默认权限为公有
- class 默认权限为私有
class C1 {int c1_age;
};struct C2
{int c2_age;
};int main() {C1 c1;//报错//c1.c1_age = 100;C2 c2;c2.c2_age = 100;system("pause");return 0;
}
4.1.3、成员属性设置为私有
- 将所有成员属性设置为私有,可以自己控制读写
- 对于写权限,我们可以检测数据的有效性
#include<iostream>
#include<string>
using namespace std;class Person
{
public://定义获取设置名字方法,方便类外部使用string getName(){return p_name;}void setName(string name){p_name = name;}//可以根据传入值检测数据的有效性void setAge(int age) {//检测输入的值if (age<0||age>=150){//输入错误设置默认值,并使该方法失效p_age = 0;cout << "输入的值为错误值" << endl;return;}//如果上面检测不通过,不会执行该条语句p_age = age;}int getAge() {return p_age;}private:string p_name;int p_age;
};int main() {Person p1;p1.setName("zyy");p1.setAge(170);string name = p1.getName();int age = p1.getAge();cout << "姓名:" << name <<'\n' << "年龄:" << age << endl;system("pause");return 0;
}
4.1.4、类练习题
- 设计立方体类
- 求出立方体的面积和体积
- 分别用全局函数和成员函数判断俩个立方体是否相等
#include<iostream>
using namespace std;class Cuboid
{
public://获取面积int getCuboid_are(){//(长×宽+宽×高+长×高)×2 面积公式return ((m_H * m_L) + (m_H * m_W) + (m_L * m_W) * 2);}//获取体积int getCuboid_vol() {return m_H * m_L * m_W;}//设置长方体长宽高void setCuboid_H(int H){m_H = H;}void setCuboid_L(int L){m_L = L;}void setCuboid_W(int W){m_W = W;}//获取长方体的长宽高int getCuboid_H() {return m_H;}int getCuboid_L() {return m_L;}int getCuboid_W() {return m_W;}//利用成员函数判断是否相等//这里只传c2 因为类已经存了一个立方体的数下,再更另一个作对比//谁调用这个函数就传另一个 c1.isEq2(c2);bool isEq2(Cuboid& c2) {if (m_H == c2.getCuboid_H() && m_L == c2.getCuboid_L() && m_W == c2.getCuboid_W()){return 1;}return 0;}private://定义长方体的长宽高int m_H;int m_L;int m_W;
};//全局判断是否相等 传入地址节约内存
bool isEq(Cuboid &c1,Cuboid &c2) {if (c1.getCuboid_H() == c2.getCuboid_H()&&c1.getCuboid_L()==c2.getCuboid_L()&&c1.getCuboid_W() == c2.getCuboid_W()){return 1;}return 0;
}int main() {Cuboid c1,c2;c1.setCuboid_H(10);c1.setCuboid_L(10);c1.setCuboid_W(10); c2.setCuboid_H(10);c2.setCuboid_L(10);c2.setCuboid_W(10);int area = c1.getCuboid_are();int vol = c1.getCuboid_vol();cout << "area:" << area << '\n' << "vol:" << vol << endl;//利用全局函数判断是否相等bool flag = isEq(c1, c2);cout << flag << endl;//利用c1的属性去对比c2bool flag2 = c1.isEq2(c2);cout << flag2 << endl;system("pause");return 0;
}
- 点和圆的关系
- 设计一个圆形类(Circle),和一个点类(Point),计算点和圆的关系
#include<iostream>
using namespace std;class Point {
public://设置X坐标和Y坐标void setPoint_X(int x) {p_X = x;}void setPoint_Y(int y) {p_Y = y;}//获取X坐标和Y坐标int getPoint_X() {return p_X;}int getPoint_Y() {return p_Y;}private://定义X坐标和Y坐标int p_X;int p_Y;
};class Circle {
public://设置圆心和半径void setCircle_R(int R) {c_R = R;}void setCircle_XY(int X,int Y) {c_P.setPoint_X(X);c_P.setPoint_Y(Y);}//获取圆心和半径int getCircle_R() {return c_R;}int getCircle_X() {return c_P.getPoint_X();}int getCircle_Y() {return c_P.getPoint_Y();}//判断点和圆的关系int isEq(Point p) {//获取点到圆心的距离int distance =(c_P.getPoint_X() - p.getPoint_X()) * (c_P.getPoint_X() - p.getPoint_X()) +(c_P.getPoint_Y() - p.getPoint_Y()) * (c_P.getPoint_Y() - p.getPoint_Y());int rDistance = c_R * c_R;// 1点在圆上,2点在圆外,3点在内if (distance == rDistance){cout << "圆上" << endl;return 1;}else if (distance > rDistance) {cout << "圆外" << endl;return 2;}else{cout << "圆内" << endl;return 3;}}private://定义半径和圆心int c_R;//在内中可以让另一个类作为本类中的成员Point c_P;
};int main() {Circle c1;//设置半径和圆心c1.setCircle_R(10);c1.setCircle_XY(10, 0);//创建点Point p;p.setPoint_X(10);p.setPoint_Y(10);int a = c1.isEq(p);cout << a << endl;system("pause");return 0;
}
4.1.5、类的拆分
基于上面练习题做一个拆分
- 在头文件中创建一个
.h后缀
的头文件
- 在源文件中创建一个
.cpp后缀
的源文件
- 在
point.h
中只需要成员函数的声明和成员变量的声明。
//防止头文件重复包含,避免名称冲突
#pragma once
#include<iostream>
using namespace std;class Point {
public://设置X坐标和Y坐标void setPoint_X(int x);void setPoint_Y(int y);//获取X坐标和Y坐标int getPoint_X();int getPoint_Y();
private://定义X坐标和Y坐标int p_X;int p_Y;
};
- 在
point.cpp
源文件中只需要留住所有函数的实现就可以
注意这里如果直接写会报错需要告诉编译器是哪个作用域下面的函数
#include "point.h"//设置X坐标和Y坐标//Point::告诉编译器是Point作用域下面的函数void Point::setPoint_X(int x) {p_X = x;}void Point::setPoint_Y(int y) {p_Y = y;}//获取X坐标和Y坐标int Point::getPoint_X() {return p_X;}int Point::getPoint_Y() {return p_Y;}
- 同理实现Circle的拆分
这里如果涉及到引用其他类需要include引用一下
Circle.h
#pragma once
#include <iostream>
#include "point.h"
using namespace std;class Circle {
public://设置圆心和半径void setCircle_R(int R);void setCircle_XY(int X, int Y);//获取圆心和半径int getCircle_R();int getCircle_X();int getCircle_Y();//判断点和圆的关系int isEq(Point p);private://定义半径和圆心int c_R;//在内中可以让另一个类作为本类中的成员Point c_P;
};
Circle.cpp
#include "Circle.h"//设置圆心和半径void Circle::setCircle_R(int R) {c_R = R;}void Circle::setCircle_XY(int X, int Y) {c_P.setPoint_X(X);c_P.setPoint_Y(Y);}//获取圆心和半径int Circle::getCircle_R() {return c_R;}int Circle::getCircle_X() {return c_P.getPoint_X();}int Circle::getCircle_Y() {return c_P.getPoint_Y();}//判断点和圆的关系int Circle::isEq(Point p) {int distance =(c_P.getPoint_X() - p.getPoint_X()) * (c_P.getPoint_X() - p.getPoint_X()) +(c_P.getPoint_Y() - p.getPoint_Y()) * (c_P.getPoint_Y() - p.getPoint_Y());int rDistance = c_R * c_R;// 1点在圆上,2点在圆外,3点在内if (distance == rDistance){cout << "圆上" << endl;return 1;}else if (distance > rDistance) {cout << "圆外" << endl;return 2;}else{cout << "圆内" << endl;return 3;}}
- 在想要用这个源文件中直接引用就可以使用了
#include<iostream>
using namespace std;
#include "point.h"
#include "Circle.h"int main() {Circle c1;//设置半径和圆心c1.setCircle_R(10);c1.setCircle_XY(10, 0);//创建点Point p;p.setPoint_X(10);p.setPoint_Y(10);int a = c1.isEq(p);cout << a << endl;system("pause");return 0;
}
相关文章:
C++核心编程--类篇
C核心编程 1.内存分区模型 C程序在执行时,将内存大方向分为4个区域 意义:不同区域存放数据,赋予不同的生命周期,更能灵活编程 代码区:存放函数体的二进制代码,由操作系统进行管理的全局区:存放…...
java中用feign远程调用注解FeignClient的时候不重写Encoder和Decoder怎么格式不对呢?
如果在使用 Feign 进行远程调用时,没有重写 Encoder 和 Decoder,但仍然遇到格式不对的问题,可能是由于以下原因之一: 服务端返回的数据格式与客户端期望的格式不匹配:Feign 默认使用基于 Jackson 的 Encoder 和 Decode…...
记录使用Docker Compose 部署《XAPI项目》遇道的问题及解决方案
《XAPI项目》:GitHub仓库(勿打🚫小破站一个) 这篇文档,主要内容是记录使用Docker Compose 部署《XAPI项目》遇道的问题及解决方案 目录 📚 本地MySQL数据如何导入到容器内的MySQL中❎ 解决报错:…...
腾讯云OCR实践 - 降低客服财务运营成本
一、 前言: 随着图片时代的飞速发展,大量的文字内容为了优化排版和表现效果,都采用了图片的形式发布和存储,这为内容的传播和安全性带来了很大的便利,需要做重复性劳动。 OCR文字扫描工具也逐渐的应运而生,…...
springboot+vue上传图片
这里是一个简单的示例,演示了如何在Spring Boot中从Vue.js上传图像: 1.前端Vue.js代码: <template><div><input type"file" change"handleFileUpload"><button click"uploadImage">…...
高压电缆护层接地环流及温度在线监测系统
高压电缆的金属护层是电缆的重要组成部分,当缆芯通过电流时,会在金属护层上产生环流,外护套的绝缘状态差、接地不良、金属护层接地方式不正确等等都会引起护套环流异常现象,严重威胁电缆运行安全。 当电缆金属护层环流出现异常时…...
无涯教程-JavaScript - IPMT函数
描述 IPMT函数根据定期,固定的还款额和固定的利率返回给定投资期限内的利息支付。 语法 IPMT (rate, per, nper, pv, [fv], [type])争论 Argument描述Required/OptionalRateThe interest rate per period.RequiredPerThe period for which you want to find the interest a…...
【EI会议征稿】第三届机械自动化与电子信息工程国际学术会议(MAEIE 2023)
第三届机械自动化与电子信息工程国际学术会议(MAEIE 2023) 第三届机械自动化与电子信息工程国际学术会议(MAEIE 2023)将于2023年12月15-17日在江苏南京举行。本会议通过与业内众多平台、社会各团体协力,聚集机械自动…...
手写实现LRN局部响应归一化算子
1、重写算子的需求 芯片推理过程中遇到很多算子计算结果不对的情况,原因是封装的算子会在某些特殊情况下计算超限,比如输入shape特别大或者数值特别大时,LRN算子计算会出现NAN值,所以需要重写算子。先对输入数据做一个预处理&…...
朗思科技数字员工通过统信桌面操作系统兼容性互认认证
近日,朗思科技数字员工与统信桌面操作系统V20进行了兼容互认,针对上述产品的功能、兼容性方面,通过共同严格测试表明——朗思科技数字员工在统信桌面操作系统 V20上整体运行稳定,满足功能及兼容性测试要求。 北京朗思智能科技有限…...
十六、Webpack常见的插件和模式
一、认识插件Plugin Webpack的另一个核心是Plugin,官方有这样一段对Plugin的描述: While loaders are used to transform certain types of modules, plugins can be leveraged to perform a wider range of tasks like bundle optimization, asset m…...
ChatGPT新增超强插件:文本直接生成视频、海报,支持自定义修改!
全球著名在线设计平台Canva,在ChatGPT Plus(GPT-4)上推出了插件功能,用户通过文本提示,几秒钟就能生成演示文稿、PPT插图、电子书封面、宴会邀请函等各种精美设计海报,同时支持生成视频。 该插件最强大的功…...
亚像素边缘提取的例子
求帮忙下载: 1.http://download.csdn.net/detail/pkma75/925394 pkma75 资源积分:1分 备注:pdf格式,用曲线拟合的方法计算亚像素,编程易实现,具有较强的实用价值 2.http://download.csdn.net/detail/kua…...
Wayland:推动Linux桌面进入下一代图形显示时代
文章首发地址 Wayland是Linux系统下的一种图形显示协议,旨在替代X Window System(X11)作为Linux桌面环境的图形显示服务。下面是对Wayland的详细解释: 背景: 传统的Linux桌面环境使用X Window System(X11&…...
mysql外键(foreign key)
简介 MySQL的外键约束用来在两个表数据之间建立链接,其中一张表的一个字段被另一张表中对应的字段约束。也就是说,设置外键约束至少要有两种表,被约束的表叫做从表(子表),另一张叫做主表(父表&…...
内网穿透——Windows搭建服务器
文章目录 1.前言2. Emby网站搭建2.1. Emby下载和安装2.2 Emby网页测试 3. 本地网页发布3.1 注册并安装cpolar内网穿透3.2 Cpolar云端设置3.3 Cpolar内网穿透本地设置 4.公网访问测试5.结语 1.前言 在现代五花八门的网络应用场景中,观看视频绝对是主力应用场景之一&…...
UE5.1 + Android 环境搭建
官方文档:一定一定一定要参照官方文档,因UE不同版本对应的环境搭建并不完全一致。 准备工作 通过EpicGameLaunch下载Android目标平台。 必须安装jdk1.8并配置环境变量,UE5.1不要使用最新的jdk20;下载地址 安装 Android Studio …...
华为python面试题目
华为Python常见的面试问题包括: Python是如何被解释的?什么是PEP8?Python是怎样管理内存的?什么是Python装饰器?Python提供哪些内置类型?Python中的异常处理是怎样的?什么是Python的上下文管理器?Python中的列表推导式是什么?Python中的生成器是什么?什么是Python的装…...
IP代理安全吗?如何防止IP被限制访问?
你是否遇到过可以正常上网,但访问某个网站却被禁止?注册某个网站账号,却被封号?那都是因为IP出现问题!您的IP地址透露很多关于您的信息,包括您的位置和互联网活动。 在本文中,我们将一起了解IP地…...
使用 gst-template 创建自己的 gstreamer 插件
系列文章目录 创建 gstreamer 插件的几种方式 使用 gst-template 创建自己的 gstreamer 插件 使用 gst-plugins-bad 里面的 gst-element-maker 工具创建gstreamer 插件 文章目录 系列文章目录前言一、如何获取 gst-template 仓库代码二、gst-template 相关的软件依赖1. 根据自…...
nginx反向代理,用户访问服务器1的80端口,请求转发至服务器2,3的8882端口
两台应用服务器,一台nginx,用户访问nginx服务器80端口,将请求转发至服务器2和服务器3的8882端口。 1、修改nginx配置文件 upstream backend {server 10.60.16.187:8882;server 10.60.16.188:8882;}server {listen 80;server_name 10.6…...
Python学习笔记:导入txt、xlsx文件并做简单函数处理
1.txt文件 1.1路径 file_path "E:\Python Project\temp.txt" with open(file_path) as f:content1 f.read() 导入文件时,如果直接放文件绝对路径上去会报错,这是因为\P是转义字符 所以在绝对路径前面加r可以避免将引号内的内容识别成转义…...
uniapp 轮播列表左右滑动,滑动到中间放大
html <!-- 轮播 --><view class"heade"><swiper class"swiper" display-multiple-items3 circulartrue previous-margin1rpxnext-margin1rpx current0 change"swiperChange" ><block v-for"(item,index) in list"…...
5. 自动求导
5.1 向量链式法则 ① 例子1是一个线性回归的例子,如下图所示。 5.2 自动求导 5.3 计算图 5.4 两种模型 ① b是之前计算的结果,是一个已知的值。 5.5 复杂度 5.6 自动求导 import torch x torch.arange(4.0) x 结果: ② 在外面计算y关于x的…...
【IEEE会议】 第三届智能通信与计算国际学术会议(ICC 2023)
第三届智能通信与计算国际学术会议 2023 3rd International Conference on Intelligent Communications and Computing 第三届智能通信与计算国际学术会议(ICC 2023)定于2023年11月24-26日在中国南昌隆重举行。会议旨在为从事智能通信与计算研究的专家学…...
巨人互动|Facebook海外户Facebook风控规则有什么
Facebook是全球最大的社交媒体平台之一,每天有数十亿的用户在其上发布、分享和交流各种内容。为了维护平台的安全性和用户体验,Facebook制定了严格的风控规则来监测和处理违规行为。下面小编讲讲Facebook风控规则。 巨人互动|Google海外户&Google Ad…...
pip命令来查看当前激活的虚拟环境
要查看已安装的虚拟环境,您可以使用以下命令: pip freeze该命令将列出所有已安装的包及其版本信息。在虚拟环境中运行时,它将仅显示该虚拟环境中安装的包。 这将列出所有已创建的虚拟环境以及当前激活的环境。 python -m venv list...
STL stack 和 queue
文章目录 一、stack 类和 queue 类的模拟实现 stack 只允许在一端进行插入删除,是一个后进先出(LIFO)的结构,可以存储任意类型 queue 只允许在一端进行插入,另一端进行删除,是一个先进先出(FIFO)的结构,可以存储任意类…...
阈值回归模型(Threshold Regression Model)及R实现
阈值回归模型是一类回归模型,其中预测变量与结果以阈值依赖的方式相关联。通过引入一个阈值参数(也称为转折点),阈值回归模型提供了一种简单而优雅、可解释的方法来建立结果和预测变量之间某些非线性关系的模型。在生物医学领域中…...
无人机通信协议MAVLink简介
Micro Air Vehicle Link(简称MAVLink)用于无人系统(例如,机器人、无人机、无人车、无人船和无人潜航器)。它定义了一组无人系统和地面站之间的消息交换规则。此协议广泛用于无人驾驶系统中,特别是ArduPilot和PX4无人驾驶系统,MAVLink协议提供了强大的功能,不仅用于监视…...
上海网站备案/爱站网 关键词挖掘工具站
Android开发:如何实现TCP和UDP传输 http://bbs.starandroid.com/showtopic-10667.html Android平台值得关注的开源项目 http://bbs.starandroid.com/showtopic-10668.html Android电源管理相关应用技巧分享 http://bbs.starandroid.com/showtopic-10670…...
下列属于b2b电子商务网站的是/外贸网站哪个比较好
本节我们看一下正则表达式的相关用法,正则表达式是处理字符串的强大的工具,它有自己特定的语法结构,有了它,实现字符串的检索、替换、匹配验证都不在话下。 当然对于爬虫来说,有了它,我们从 HTML 里面提取我…...
网站建设我要自学网/宣传推广方案
自然框架里的元数据 元数据的职责: 自然框架里的元数据有三个职责:描述数据库(字段、表、视图等),描述项目(功能节点、操作按钮等),项目和数据库的关系(一个列表页面里…...
休闲食品网站模板/媒体发稿推广
Demo详见GitHub:JXTMarkLabel 镂空文字 - JXTHollowOutLabel 镂空文字效果的实现基于drawRect重绘,具体参考了两篇帖子: Drawing a path with subtracted text using Core GraphicsdrawRect drawing ‘transparent’ text? 想了解原理的可以…...
国内做的好网站有哪些/关键词推广seo怎么优化
按天备份 按周备份 mysql的mysqldump备份什么时候能派上用场1,迁移或者升级数据库时2,增加从库的时候3,如果因为硬件或特殊情况,主库或者从库宕机,主从可以互相切换,无需备份4,人为的DDL,DML语句…...
dw可以做有后台的网站么?/真正免费建站
题目链接: B君的圆锥 基准时间限制:1 秒 空间限制:131072 KB B君要用一个表面积为S的圆锥将白山云包起来。 B君希望包住的白山云体积尽量大,B君想知道体积最大可以是多少。注意圆锥的表面积包括底面和侧面。Input一行一个整数&…...