每日计划-1123

1. 完成 15. 三数之和

class Solution {
public:vector<vector<int>> threeSum(vector<int>& nums) {sort(nums.begin(), nums.end());// 待返回的三元组vector<vector<int>> triples;for(int i = 0; i < nums.size(); i++){// 检测重复的 nums[i]if(i > 0 && nums[i] == nums[i-1]) continue;int l = i + 1;int r = nums.size() - 1;while(l < r) {// 检测重复的 nums[l] 并防止越界while(l > i + 1 && l < nums.size() && nums[l] == nums[l-1]) l++;// 检测重复的 nums[r] 并防止越界while(r < nums.size() - 1 && r > i && nums[r] == nums[r+1]) r--;// 防止 l, r 错位if(l >= r) break;// 均不重复再按照两数之和的思路// 等同于判断 nums[l] + nums[r] > -nums[i]if(nums[i] + nums[l] + nums[r] > 0) r--;// 等同于判断 nums[l] + nums[r] < -nums[i]else if(nums[i] + nums[l] + nums[r] < 0) l++;// nums[l] + nums[r] == nums[i], 三元组符合,添加入结果else {triples.push_back({nums[i], nums[l], nums[r]});l++; r--;}}}return triples;}
};

2. 八股部分

  1. 模板特化(Template Specialization)和偏特化(Partial Template Specialization)的概念

    • 模板特化
      • 定义:模板特化是指为特定的模板参数类型提供一个定制化的模板实现。当使用模板时,编译器通常会根据提供的模板参数生成对应的代码。但对于某些特殊的参数类型,通用的模板实现可能效率低下或者不符合要求,这时就可以通过模板特化来提供一个专门针对这些特殊类型的实现。例如,对于一个通用的compare模板函数,用于比较两个值的大小,它可能对大多数类型(如intdouble等)都能正常工作,但对于像char*(C 风格字符串)这样的类型,通用模板的比较方式(可能是比较指针的值)就不符合预期(我们期望比较字符串的内容),这时就需要对char*类型进行模板特化。
    • 偏特化
      • 定义:偏特化是模板特化的一种形式,它不是针对一个完全特定的类型进行特化,而是针对一组满足特定条件的类型进行特化。例如,对于一个模板类,我们可以对指针类型进行偏特化,而不管这个指针具体指向什么类型。或者对于模板类的多个参数,我们可以对其中部分参数进行特化,而不是全部参数。偏特化提供了一种更灵活的方式来处理模板参数,使得可以针对一些有共同特征的类型组提供专门的实现。
  2. 如何进行模板特化和偏特化

    • 模板特化的实现步骤
      • 函数模板特化
        • 步骤一:定义通用模板函数:首先,定义一个通用的模板函数,例如:

 

template<typename T>
bool compare(T a, T b) {return a > b;
}

  • 步骤二:进行特化:对于需要特化的类型,比如char*,定义一个特化版本的函数模板。特化版本的函数模板声明格式为template<> bool compare<char*>(char* a, char* b),注意这里没有模板参数<typename T>,而是直接指定了特化的类型char*。完整的特化函数实现如下:

 

template<>
bool compare<char*>(char* a, char* b) {return strcmp(a, b) > 0;
}

  • 类模板特化
    • 步骤一:定义通用模板类:例如,定义一个简单的Array模板类来存储数组元素:

 

template<typename T, int N>
class Array {
public:T data[N];T& operator[](int i) {return data[i];}
};
  • 步骤二:进行特化:假设我们要对int类型且大小为 5 的Array进行特化,特化类模板的声明格式为template<> class Array<int, 5>。完整的特化类实现如下:

 

template<>
class Array<int, 5> {
public:int data[5];int& operator[](int i) {return data[i];}void specialFunction() {// 可以添加一些仅针对这个特化版本的函数std::cout << "This is a special function for Array<int, 5>" << std::endl;}
};

  • 模板偏特化的实现步骤
    • 类模板偏特化(以指针类型为例)
      • 步骤一:定义通用模板类:同上面的类模板定义,例如:

 

template<typename T, int N>
class Array {
public:T data[N];T& operator[](int i) {return data[i];}
};
  • 步骤二:进行偏特化:对指针类型进行偏特化,偏特化的声明格式为template<typename T, int N> class Array<T*, N>。在这个偏特化版本中,我们可以针对指针类型的特点进行不同的实现,例如:
template<typename T, int N>
class Array<T*, N> {
public:T* data[N];T*& operator[](int i) {return data[i];}
};
  • 这里可以看到,对于指针类型的偏特化,data成员变成了T*类型的数组,而operator[]函数的返回类型也相应地变为T*&,以适应指针类型的操作。这种偏特化可以方便地处理所有指针类型的情况,而不管指针具体指向什么类型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/477386.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

汇编语言基础

目录 基本套路 头部&#xff1a; 段&#xff1a; 函数&#xff1a; 导入masm32库 输入输出 加法指令 常见数据类型 定义数据类型 数据传达指令&#xff08;mov&#xff09; 加减法 常用伪指令 间接寻址 JMP和LOOP 堆栈操作 定义函数(ret,call) 位运算 jcc(跳…

React (三)

文章目录 项目地址十二、性能优化12.1 使用useMemo避免不必要的计算12.2 使用memo缓存组件,防止过度渲染12.3 useCallBack缓存函数12.4 useCallBack里访问之前的状态(没懂)十三、Styled-Components13.1 安装13.2给普通html元素添加样式13.3 继承和覆盖样式13.4 给react组件添…

MD5算法的学习

MD5_百度百科 MD5信息摘要算法&#xff08;Message-Digest Algorithm&#xff09;,一种被广泛使用的密码散列函数&#xff0c;可以产生出一个128位的&#xff08;16字节&#xff09;的散列值&#xff08;hash value&#xff09;&#xff0c;用于确保信息传输完整一致。MD5由美…

【虚拟机】VMWare的CentOS虚拟机断电或强制关机出现问题

VMware 虚拟机因为笔记本突然断电故障了&#xff0c;开机提示“Entering emergency mode. Exit the shell to continue.”&#xff0c;如下图所示&#xff1a; 解决方法&#xff1a;输入命令&#xff1a; xfs_repair -v -L /dev/dm-0 注&#xff1a;报 no such file or direct…

【论文阅读】WGSR

0. 摘要 0.1. 问题提出 1.超分辨率(SR)是一个不适定逆问题&#xff0c;可行解众多。 2.超分辨率(SR)算法在可行解中寻找一个在保真度和感知质量之间取得平衡的“良好”解。 3.现有的方法重建高频细节时会产生伪影和幻觉&#xff0c;模型区分图像细节与伪影仍是难题。 0.2. …

解决 Android 单元测试 No tests found for given includes:

问题 报错&#xff1a; Execution failed for task :testDebugUnitTest. > No tests found for given includes: 解决方案 1、一开始以为是没有给测试类加public修饰 2、然后替换 Test 注解的包可以解决&#xff0c;将 org.junit.jupiter.api.Test 修改为 org.junit.Tes…

服务机器人三甲坎德拉:用智能化开启售后服务新篇章

随着市场需求快速增长&#xff0c;专注自动驾驶服务机器人研发的坎德拉近年来实现了快速发展&#xff0c;并且通过技术创新与优质服务收获了良好口碑。为了不断提升售后服务质量和客户服务水平&#xff0c;坎德拉与新一代智能客户服务解决方案提供商售后宝共同打造智能化的售后…

3D建筑模型的 LOD 规范

LOD&#xff08;细节层次&#xff09; 是3D城市建模中用于表示建筑模型精细程度的标准化描述不同的LOD适用于不同的应用场景 LOD是3D建模中重要的分级标准&#xff0c;不同层级适合不同精度和用途的需求。 从LOD0到LOD4&#xff0c;细节逐渐丰富&#xff0c;复杂性和精度也逐…

递归------深度优先搜索

深度优先搜索&#xff08;Depth-First Search&#xff0c;简称DFS&#xff09;是一种用于遍历或搜索树或图的算法。它从一个顶点开始&#xff0c;尽可能深地搜索树的分支。深度优先搜索沿着一条路径深入&#xff0c;直到无法继续为止&#xff0c;然后回溯并尝试其他路径。这种搜…

蓝桥杯c++算法学习【5】之枚举与模拟(卡片、回文日期、赢球票、既约分数:::非常典型的比刷例题!!!)

别忘了请点个赞收藏关注支持一下博主喵&#xff01;&#xff01;&#xff01;! ! ! &#xff01;&#xff01;&#xff01; 关注博主&#xff0c;更多蓝桥杯nice题目静待更新:) 枚举与模拟 一、卡片&#xff1a; 【问题描述】 小蓝有很多数字卡片&#xff0c;每张卡片上都…

相机网卡开启巨型帧和关闭节能模式方法

2022 年 8 月 2 日 Tank 阅读次数&#xff08;ip/1年&#xff09;: 26,796 win10为例子 首先在开始菜单搜索&#xff1a;网络连接 对想要设置的网络右键&#xff1a;属性 点 配置 高级里面找到这三个选项&#xff0c;参考下图设置&#xff0c;螃蟹网卡建议关掉所有节能有关的…

Windows server2016设置多用户界面——保姆级教程

在 Windows Server 2016 服务器中&#xff0c;通常默认情况下能够支持两个用户进行远程登录。而通过在服务器上安装远程桌面服务中的远程桌面会话主机和远程桌面授权&#xff0c;并对其进行相应配置&#xff0c;便可以实现多用户远程登录。 远程桌面服务是一种由若干角色服务所…

第一个autogen与docker项目

前提条件&#xff1a;在windows上安装docker 代码如下&#xff1a; import os import autogen from autogen import AssistantAgent, UserProxyAgentllm_config {"config_list": [{"model": "GLM-4-Plus","api_key": "your api…

后端开发详细学习框架与路线

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;后端开发 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 为帮助你合理安排时间&#xff0c;以下是结合上述学习内容的阶段划分与时间分配建议。时间安排灵活&a…

【Isaac Sim】相关问题汇总

目录 一、安装点击Install时报错二、启动时报 Failed to create any GPU devices三、加载Isaac Sim自带模型或示例时报 Isaac Sim is not responding 一、安装点击Install时报错 报错&#xff1a; request to https://asset.launcher.omniverse.nvidia.com/… failed, reason:…

社团管理智能化:SpringBoot技术

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

【C++】继承(inheritance)

引入 假设我们有一个动物类 class Animal { public:int age;void eat() {std::cout << "吃东西&#xff01;" << std::endl;} };又想写一个狗类&#xff0c;它也有年龄&#xff0c;也会吃&#xff0c;除此之外还有种类 class Dog { public:const char…

Oracle - 多区间按权重取值逻辑 ,分时区-多层级-取配置方案(二)

Oracle - 多区间按权重取值逻辑 &#xff0c;分时区-多层级-取配置方案https://blog.csdn.net/shijianduan1/article/details/133386281 某业务配置表&#xff0c;按配置的时间区间及组织层级取方案&#xff0c;形成报表展示出所有部门方案的取值&#xff1b; 例如&#xff0…

电子应用设计方案-19:智能云饭锅系统方案设计

智能云饭锅系统方案设计 一、系统概述 本智能云饭锅系统旨在提供便捷、个性化和智能化的烹饪体验&#xff0c;结合云服务实现远程控制、食谱推荐和烹饪数据管理等功能。 二、系统组成 1. 锅体 - 采用高品质的不粘涂层内胆&#xff0c;确保米饭受热均匀且易于清洁。 - 具备良好…

镁光MT25QU01GXXX norflash调试笔记

目录 前言一、芯片概述二、数据手册解释1. 数据手册获取2.内容概括 三、几个操作的代码1.复位芯片操作2.读取芯片ID3.擦除芯片扇区4.向芯片存入数据5.读取存储的数据6.其它操作函数 前言 本笔记总结如何使用MCU对nor flash进行数据存储&#xff0c;包括芯片基本介绍&#xff0…