实习冲刺Day17
算法题
x的平方根
69. x 的平方根 - 力扣(LeetCode)
class Solution {
public:int mySqrt(int x) {long left = 0,right = x;//定义左右边界//数值取的大longlong类型while (left < right) {long mid = (right-left+1)/2+left;//定义中间节点if ((mid * mid )<= x) {//如果中间的平方小于x,那中间值左边的整体也小left = mid;} else {//如果中间值的大与x,那中间值的右边整体都大于x,right移动right = mid - 1;}}return (int)left;//返回left}
};
基础知识
如何使用函数模板和类模板?
函数模版
函数模板可以重载,只要它们的形参表或类型参数表不同即可。
在有多个函数和函数模板名字相同的情况下,编译器如何处理,
- 先找参数完全匹配的普通函数(非由模板实例化而得的函数)。
- 再找参数完全匹配的模板函数。
- 再找实参数经过自动类型转换后能够匹配的普通函数。
- 上面的都找不到,则报错。
#include<iostream>
template <class 类型参数1,class 类型参数2, ……>
返回值类型 模板名(形参表) {函数体
};
求两数之和
#include<iostream>
using namespace std;
template<class T>
//计算两数之和
T sum(T a, T b) {T c = a + b;return c;}
int main() {int a = 10, b = 20;cout << sum(a, b) << endl;//自动转成int类型double c = 1.2, d = 2.3;cout << sum(c, d) << endl;//自动转成double类型
}
编译器自动生成函数
int sum(int a, int b) {int c = a + b;return c;}
类模版
在定义类的时候,加上一个/多个类型参数。在使用类模板时,指定类型参数应该如何替换成具体类型,编译器据此生成相应的模板类。
同一个类模板的两个模板类是不兼容的:
编译器由类模板生成类的过程叫类模板的实例化。由类模板实例化得到的类,叫模板类。
template <class 类型参数1,class 类型参数2,……> //类型参数表
class 类模板名
{成员函数和成员变量
};
模板的优点是什么?
优点:
- 代码重用:减少了代码的冗余性。
- 类型安全:类型检查的时候更容易捕获错误
- 灵活性:模板提供了极高的灵活性,因为它们可以在任何支持所需操作的数据类型上使用。这包括用户定义的类型和STL(Standard Template Library)容器等内置类型。
- 性能:由于模板在编译时生成特定类型的代码,因此它们通常比使用虚函数或函数指针的方法更快。此外,由于类型信息在编译时是已知的,编译器可以进行优化。
- 抽象:模板提供了一种抽象机制,使得程序员可以专注于算法本身,而不是关注数据类型的具体实现。这有助于保持代码的清晰和简洁。
相关文章:
实习冲刺Day17
算法题 x的平方根 69. x 的平方根 - 力扣(LeetCode) class Solution { public:int mySqrt(int x) {long left 0,right x;//定义左右边界//数值取的大longlong类型while (left < right) {long mid (right-left1)/2left;//定义中间节点if ((mid *…...
我自己nodejs练手时常用的一些库基础用法
我自己在使用nodejs以及前端实战练习时常用的一些库的基本使用 1.bcrypt //注册账号时,给密码加密 password是前端传过来的密码,hashPassword是存到数据库中的密码 const bcrypt require(bcrypt) const hashPassword bcrypt.hash(password,10) //登…...
岛屿数量问题
给一个0 1矩阵,1代表是陆地,0代表海洋, 如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。 岛屿问题: 相邻陆地可以组成一个岛屿(相邻:上下左右) 判断岛屿个数。 C 解决方案 #include &…...
智能制造基础- TPM(全面生产维护)
TPM 前言一、TPM二、TPM实施步骤三、 消除主要问题3.1 实施指南3.2 如何进行“主要问题”的消除? 四、自主维护4.1 实施指南4.2 主要工作内容4.3 如何进行“自主维护“ 五、计划维护5.1 实施指南5.2 如何实施计划维护 六、TPM 适当的 设备 设计5.1 实施指南5.2 如何…...
C++学习笔记----11、模块、头文件及各种主题(一)---- 模板概览与类模板(4)
2.2.2、显式实例化 有危险存在于有些类模板成员函数的编译错误,在隐式实例化时没有注意到。未被使用的类模板成员函数也可能包含语法错误,因为它们不会被编译到。这会使得检测代码的语法错误很困难。可以强制编译器生成所有成员函数的代码,vi…...
【力扣热题100】[Java版] 刷题笔记-160. 相交链表
题目:160. 相交链表 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意…...
多线程和线程同步复习
多线程和线程同步复习 进程线程区别创建线程线程退出线程回收全局写法传参写法 线程分离线程同步同步方式 互斥锁互斥锁进行线程同步 死锁读写锁api细说读写锁进行线程同步 条件变量生产者消费者案例问题解答加强版生产者消费者 总结信号量信号量实现生产者消费者同步-->一个…...
贝式计算的 AI4S 观察:使用机器学习对世界进行感知与推演,最大魅力在于横向扩展的有效性
「传统研究方法高度依赖于科研人员自身的特征和问题定义能力,通常采用小数据,在泛化能力和拓展能力上存疑。而 AI 研究方法则需要引入大规模、高质量数据,并采用机器学习进行特征抽取,这使得产生的科研结果在真实世界的问题中非常…...
容器化技术入门:Docker详解
💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 容器化技术入门:Docker详解 容器化技术入门:Docker详解 容器化技术入门:Docker详解 引言 Doc…...
基于SSM(Spring + Spring MVC + MyBatis)框架的药房管理系统
基于SSM(Spring Spring MVC MyBatis)框架的药房管理系统 项目概述 功能需求 用户管理:管理员可以添加、删除、修改和查询用户信息。药品管理:支持对药品信息的增删改查操作,包括药品名称、价格、库存量等。供应商…...
在服务器里安装2个conda
1、安装新的conda 下载地址:Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 本文选择:Anaconda3-2023.03-1-Linux-x86_64.sh 安装:Ubuntu安装Anaconda详细步骤(Ubuntu22.04.1ÿ…...
web安全漏洞之ssrf入门
web安全漏洞之ssrf入门 1.什么是ssrf SSRF(Server Side Request Forgery,服务端请求伪造)是一种通过构造数据进而伪造成服务端发起请求的漏洞。因为请求是由服务器内部发起,所以一般情况下SSRF漏洞的目标往往是无法从外网访问的内系统。 SSRF漏洞形成的原理多是服务…...
《NoSQL 基础知识总结》
在当今的数据存储和管理领域,NoSQL 数据库正逐渐崭露头角,成为许多应用场景下的有力选择。今天,我们就来一起深入了解一下 NoSQL 的基础知识吧。 一、什么是 NoSQL? NoSQL,即 “Not Only SQL”,它是一种不…...
高校宿舍信息管理系统小程序
作者主页:编程千纸鹤 作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参…...
2.索引:MySQL 索引分类
MySQL中的索引是提高数据查询速度的重要工具,就像一本书的目录,可以帮助我们快速定位到所需的内容。选择适合的索引类型对数据库设计和性能优化至关重要。本文将详细介绍MySQL中常见的索引类型,并重点讲解聚集索引和二级索引的概念及应用。 1…...
sklearn红酒数据集分类器的构建和评估
实验目的: 1. 掌握sklearn科学数据包中决策树和神经网络分类器的构建 2. 掌握对不同分类器进行综合评估 实验数据: 红酒数据集 红酒数据集利用红酒的化学特征来描述三种不同类型的葡萄酒。 实验内容与要求: 解压文件得到wine数据。利用pa…...
【IC验证面试常问-4】
IC验证面试常问-4 1.11 struct和union的异同1.13 rose 和posedge 的区别?1.14 semaphore的用处是什么?1.15 类中的静态方法使用注意事项有哪些?1.16 initial和final的区别? s t o p , stop, stop,finish的区别1.17 logic,wire和re…...
【数据集】【YOLO】【目标检测】交通事故识别数据集 8939 张,YOLO道路事故目标检测实战训练教程!
数据集介绍 【数据集】道路事故识别数据集 8939 张,目标检测,包含YOLO/VOC格式标注。数据集中包含2种分类:{0: accident, 1: non-accident}。数据集来自国内外图片网站和视频截图。检测范围道路事故检测、监控视角检测、无人机视角检测、等&…...
书生浦语第四期基础岛L1G4000-InternLM + LlamaIndex RAG 实践
文章目录 一、任务要求11.首先创建虚拟环境2. 安装依赖3. 下载 Sentence Transformer 模型4.下载 NLTK 相关资源5. 是否使用 LlamaIndex 前后对比6. LlamaIndex web7. LlamaIndex本地部署InternLM实践 一、任务要求1 任务要求1(必做,参考readme_api.md&…...
基于ViT的无监督工业异常检测模型汇总
基于ViT的无监督工业异常检测模型汇总 论文1:VT-ADL: A Vision Transformer Network for Image Anomaly Detection and Localization(2021)1.1 主要思想1.2 系统框架 论文2:Inpainting Transformer for Anomaly Detection…...
Tomato Novel Downloader:智能搜索功能的技术突破
Tomato Novel Downloader:智能搜索功能的技术突破 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 在数字阅读工具领域,用户体验的每一个细节都可能决定…...
SpringBoot + MongoDB 5分钟快速集成:从0到1实操指南
目录 MongoDB 快速集成 常用API MongoDB MongoDB 是一个基于分布式文件存储的文档型数据库,属于 NoSQL 数据库中最接近关系型数据库的产品,旨在为 Web 应用提供高性能、高可用和可扩展的数据存储解决方案 。 MongoDB以灵活的无模式文档模型…...
7大维度测评:2023年开源付费墙绕过工具终极选择指南
7大维度测评:2023年开源付费墙绕过工具终极选择指南 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在数字内容访问需求日益增长的今天,选择一款高效可靠的开源…...
认知内耗:在亚马逊,为何品牌名内部的“关键词”正在相互厮杀
在亚马逊的品牌丛林中,最隐蔽的悲剧莫过于:你精心构思的品牌名,其内部的各个组成部分(如“欧文斯”、“康宁”、“玻璃纤维”),并未协同指向你,反而各自激活了消费者心智中其他更强大品牌的“认…...
OpenRocket终极指南:专业火箭设计与飞行仿真软件完全解析
OpenRocket终极指南:专业火箭设计与飞行仿真软件完全解析 【免费下载链接】openrocket Model-rocketry aerodynamics and trajectory simulation software 项目地址: https://gitcode.com/GitHub_Trending/op/openrocket OpenRocket是一款功能强大的开源火箭…...
NumPy 2.4.4 发布,修复关键错误
NumPy 2.4.4 版本正式发布,作为补丁版本,它修复了 2.4.3 版本的错误,解决了 ARM 平台 OpenBLAS 线程问题,还支持 Python 3.11 - 3.14 版本。 版本修复亮点 NumPy 2.4.4 主要解决了 ARM 平台上的 OpenBLAS 线程问题,即 …...
创维E900V22D_S905L3S(B)芯片-安卓9.0-免拆线刷固件包及短接神器使用指南
1. 创维E900V22D刷机前的准备工作 拿到创维E900V22D机顶盒的第一件事,就是确认它的硬件配置。这个型号采用的是晶晨S905L3S(B)芯片方案,运行的是安卓9.0系统。我遇到过不少朋友因为没看清芯片型号就开刷,结果把盒子刷成砖的案例。所以一定要先…...
联想新品入局,AI智能终端市场格局生变
联想新品发布,直击Mac mini“养虾”痛点2026年3月31日,联想集团正式发布YOGA AI Mini与Think AI Tiny两款AI原生智能终端。其中,YOGA AI Mini面向个人消费市场,精准对标当下被众多用户用于运行OpenClaw的Mac mini。Mac mini虽因便…...
nlp_structbert_sentence-similarity_chinese-large入门指南:从ModelScope下载到本地Web服务上线
nlp_structbert_sentence-similarity_chinese-large入门指南:从ModelScope下载到本地Web服务上线 你是不是经常需要判断两句话是不是一个意思?比如,检查用户提问是不是同一个问题,或者看看两段文案是不是在说同一件事。以前做这种…...
鸿蒙3.1实测:UART调试日志去Root全流程(含init.cfg避坑指南)
鸿蒙3.1 UART调试权限管理实战:从Root到Shell的无缝切换 当你在深夜的实验室里盯着串口终端上刺眼的#符号时,是否曾思考过这个Root权限带来的安全隐患?鸿蒙系统作为新一代分布式操作系统,其权限管理机制与Android有着本质区别。本…...
