39 C++ 模版中的参数如果 是 vector,list等集合类型如何处理呢?
在前面写的例子中,模版参数一般都是 int,或者一个类Teacher,假设我们现在有个需求:模版的参数要是vector,list这种结合类型应该怎么写呢?
//当模版中的类型是 vector ,list 等集合类型的时候的处理。//举例,如下typename T是正常的模版参数,MYContainer是类似vector,map,list之类的集合
template<typename T, template<class> class MYContainer>
//template<typename T, template<typename W> class MYContainer>//这一行和上一行是同样的作用,只是,加了一个W,但是这个W不会使用,只是语法上的要求
class Teacher119 {
public:T m_i;MYContainer<T> m_con;
public://构造方法//在参数化列表中,给m_i赋值。Teacher119(T tt):m_i(tt) {//我们假设 实例化模版的的集合中,是有 push_back方法的for (int i = 10; i < 20;i++) {m_con.push_back(i);//假设真正的容器支持push_back方法,vector,list}}};//解决方案:使用using 给vector起别名
template<typename T>
using MYVec = vector<T, allocator<T>>;void main() {
//使用//按之前的写法应该这样写:但是有build error,//build error原因是:vector有两个参数,一个是类型,另一个是allocator<int>//一般情况下allocator<int>是有默认值的,但是在这种情况下,好像没有默认值//解决方案:使用using 给vector起别名 //Teacher119<int, vector<int>> myobj(10000); build errorTeacher119<int, MYVec> myobj(10000); //验证vector<int > aa = myobj.m_con;for (vector<int>::iterator it = aa.begin();it!=aa.end();it++){cout << *it << " ";}//结果为 10 11 12 13 14 15 16 17 18 19}
map情况下的处理,好像不管咋写都有build error,这块先剩下,如果有网友知道怎么写,请帮忙在留言中指导一下
相关文章:
39 C++ 模版中的参数如果 是 vector,list等集合类型如何处理呢?
在前面写的例子中,模版参数一般都是 int,或者一个类Teacher,假设我们现在有个需求:模版的参数要是vector,list这种结合类型应该怎么写呢? //当模版中的类型是 vector ,list 等集合类型的时候的处…...
5.Pytorch模型单机多GPU训练原理与实现
文章目录 Pytorch的单机多GPU训练1)多GPU训练介绍2)pytorch中使用单机多GPU训练DistributedDataParallel(DDP)相关变量及含义a)初始化b)数据准备c)模型准备d)清理e)运行 3)使用DistributedDataParallel训练模型的一个简单实例 欢迎访问个人网络日志🌹🌹知…...
想成为一名C++开发工程师,需要具备哪些条件?
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保…...
Qat++,轻量级开源C++ Web框架
目录 一.简介 二.编译Oat 1.环境 2.编译/安装 三.试用 1.创建一个 CMake 项目 2.自定义客户端请求响应 3.将请求Router到服务器 4.用浏览器验证 一.简介 Oat是一个面向C的现代Web框架 官网地址:https://oatpp.io github地址:https://github.co…...
openssl3.2 - 官方demo学习 - digest - EVP_MD_demo.c
文章目录 openssl3.2 - 官方demo学习 - digest - EVP_MD_demo.c概述笔记END openssl3.2 - 官方demo学习 - digest - EVP_MD_demo.c 概述 使用 SHA3-512 对多个buffer连续进行摘要, 最后得到一个摘要值 笔记 /*! \file EVP_MD_demo.c \note openssl3.2 - 官方demo学习 - dig…...
uniapp 编译后文字乱码的解决方案
问题: 新建的页面中编写代码,其中数字和图片都可以正常显示,只有中文编译后展示乱码 页面展示也是乱码 解决方案: 打开HuilderX编辑器的【文件】- 【以指定编码重新打开】- 【选择UTF-8】 然后重新编译就可以啦~ 希望可以帮到你啊~...
iOS中利用KeyChain永久保存用户信息的方法示例
方法示例 一、新建一个LYKeychainTool类,导入系统Security框架 ,LYKeychainTool.h文件实现如下 // // LYKeychainTool.h // keyChainTest // // Created by Liyu on 2017/6/2. // Copyright © 2017年 liyu. All rights reserved. //#import <F…...
基于时域有限差分法的FDTD的计算电磁学算法(含Matlab代码)-YEE网格下的更新公式推导
基于时域有限差分法的FDTD的计算电磁学算法(含Matlab代码)-YEE网格下的更新公式推导 参考书籍:The finite-difference time-domain method for electromagnetics with MATLAB simulations(国内翻译版本:MATLAB模拟的电…...
win10使用debug,汇编初学
DOSBox挂载Debug.exe 双击 DOSBox Options.bat 打开配置 或者执行cmd DOSBox.exe -editconf notepad.exe -editconf %SystemRoot%\system32\notepad.exe -editconf %WINDIR%\notepad.exe最后一行增加 mount [盘符] [挂载的工作目录(debug.exe文件夹位置ÿ…...
怎么投稿各大媒体网站?
怎么投稿各大媒体网站?这是很多写作者及自媒体从业者经常面临的问题。在信息爆炸的时代,如何将自己的文章推送到广大读者面前,成为了一个不可避免的挑战。本文将为大家介绍一种简单有效的投稿方法——媒介库发稿平台发稿,帮助大家…...
chatgpt免费使用的网站
前言 如果您认为本文对你有帮助,希望可以点赞收藏!感谢您的支持 下面我为你推荐我自己在用的gpt类工具,帮你在工作学习生活上解决一些大小问题 🎉智能GPT 地址: https://meet.adminjs.net 在他的详情中有详细的使用…...
音频编辑软件:Studio One 6 中文
Studio One 6是一款功能强大的数字音乐制作软件,为用户提供一站式音乐制作解决方案。它具有直观的界面和强大的音频录制、编辑、混音和制作功能,支持虚拟乐器、效果器和第三方插件,可帮助用户实现高质量的音乐创作和制作。同时,St…...
MySQL语句|使用UNION和UNION ALL合并两个或多个 SELECT 语句的结果集
文章目录 举个通用的例子举个实际的例子 在MySQL中, UNION 和 UNION ALL 是用于合并两个或多个 SELECT 语句的结果集的操作符。 UNION 会去除结果集中的重复行,返回唯一的行,而 UNION ALL 会返回所有的行,包括重复行。 举个通…...
UNRAID 优盘制作
使用方法和开心方法: 如果重启之后显示器有信号但是黑屏无法正常引导系统,此为九代以后主板快速开机(快速引导)UNRAID并不支持快速引导所以会直接卡黑屏。所以发现这种情况的时候请进BIOS关闭和开机快速引导或和快有关系的任何开…...
二、Java中SpringBoot组件集成接入【MySQL和MybatisPlus】
二、Java中SpringBoot组件集成接入【MySQL和MybatisPlus】 1.MySQL和MybatisPlus简介2.maven依赖3.配置1.在application.yaml配置中加入mysql配置2.新增Mybatis-Plus配置类 4.参考文章 1.MySQL和MybatisPlus简介 MySQL是一种开源的关系型数据库管理系统,被广泛应用…...
银行测试--------转账
转账 付款账号测试 付款账号是借记卡,也可以是活期存折信用卡,定期存折不能转出。一般在账号选择的时候进行屏蔽转出账户在销户,冻结,挂失等异常状态,不能进行转账付款账号金额不够 转账金额测试 0.01~…...
阿里云最新优惠券领取方法及优惠活动汇总
随着互联网的飞速发展,云服务已经成为企业和个人使用的重要基础设施。阿里云作为全球领先的云服务提供商,一直致力于为用户提供优质的云服务。为了回馈用户,阿里云会定期推出各种优惠券和优惠活动,本文将为大家介绍阿里云最新优惠…...
动态分配内存的风险
1. 悬挂指针问题 在指针释放之后要将指针置空 delete ptr; ptr nullptr;2.内存碎片问题 频繁的申请与释放小块内存会造成大量的内存碎片。 3.内存申请与释放问题 C与C的内存申请与释放最好不要混用。 4.复制内存 基本语法 void* memcpy(void* _Dst, void* _Src, size_…...
多行SQL转成单行SQL
如下图所示 将以上多行SQL转成单行SQL 正则表达式如下 (?s)$[^a-zA-Z()0-9]*结果如下 灵活使用,也未必只能使用Sublime Text...
wpf的资源路径
1、手动命名空间 xmlns:share"clr-namespace:***;assembly**" 2、资源文件 Pack URI 编译到本地程序集内的资源文件的 pack URI 使用以下授权和路径: 授权:application:///。 路径:资源文件的名称,包括其相对于本地…...
【架构实战】日志体系ELK:集中化日志管理实践
【架构实战】日志体系ELK:集中化日志管理实践字数统计:约3500字一、从一个深夜告警说起 2024年双十一前的凌晨两点,我接到运维的电话:“支付服务挂了,用户投诉量飙升。” 我揉着眼睛打开电脑,第一件事就是登…...
智慧果园黄瓜识别分割数据集labelme格式1002张1类别
数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件)图片数量(jpg文件个数):1002标注数量(json文件个数):1002标注类别数:1标注类别名称:["cucumber"]每个类别标注的框数:c…...
AssetRipper:3步解锁Unity游戏资源逆向提取的终极免费方案
AssetRipper:3步解锁Unity游戏资源逆向提取的终极免费方案 【免费下载链接】AssetRipper GUI Application to work with engine assets, asset bundles, and serialized files 项目地址: https://gitcode.com/GitHub_Trending/as/AssetRipper 在Unity游戏开发…...
BiliTools终极指南:免费下载B站视频的跨平台工具箱
BiliTools终极指南:免费下载B站视频的跨平台工具箱 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools Bili…...
【为风光储一体化系统注入精准“心跳”的隐形力量】
在“双碳”战略目标的宏伟蓝图下,构建以新能源为主体的新型电力系统已成为时代命题。风光储一体化,作为平滑新能源波动、提升电网消纳能力的关键路径,正迎来前所未有的发展机遇。在这一变革性的能源体系中,每一处精密的控制与高效…...
会议记录差点搞砸,直到遇见这个“录音转文字”神器
上周三下午,我差点因为一场两小时的跨部门评审会被老板“请喝茶”。事情是这样的:作为产品经理,我负责主持一场涉及技术、运营、销售三方的季度复盘会。会上大家争论激烈,我一边控场一边记笔记,结果手忙脚乱——技术总…...
波卡XCMP深度解析:跨链通信的核心标准与实战指南
波卡XCMP深度解析:跨链通信的核心标准与实战指南 引言:多链时代的“通信协议” 在区块链从“单链”走向“多链”甚至“链网”的演进中,跨链互操作性已成为决定生态繁荣与否的关键。波卡(Polkadot)提出的XCMP࿰…...
ESP32-S2开发入门:用VSCode远程连接WSL,打造丝滑的嵌入式开发工作流
ESP32-S2开发环境优化:VSCode与WSL的高效协作方案 嵌入式开发工程师常面临跨平台协作的挑战——既需要Linux环境的强大工具链,又依赖Windows的图形界面友好性。本文将揭示如何通过VSCode远程连接WSL,构建一个无缝衔接的ESP32-S2开发环境&…...
【权威实测】Perplexity vs PubMed vs Scite:在结构生物学领域,它为何将文献召回率提升68%?
更多请点击: https://codechina.net 第一章:Perplexity生物知识搜索 Perplexity 是一款以实时网络检索与引用溯源为核心能力的 AI 搜索工具,其在生命科学领域的应用正迅速拓展。不同于传统大模型依赖静态训练数据,Perplexity 在执…...
当 DAA 成为常态,如何用“数字摄像头”建设 Agent 可观测性
一个企业可以容忍 10 个 AI Agent 不可控,但无法容忍 1000 个数字员工同时在后台“黑盒运行”。 2026 年,随着 AI Agent 开始真正进入业务流程,企业第一次发现:AI 已经不再只是一个聊天工具,而是一群真正会执行任务、调…...
