C++学习——模板

文章目录

    • 1.C++模板
    • 2.C++模板是什么,底层怎么实现的?

1.C++模板

模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。
模板是创建泛型类或函数的蓝图或公式。
库容器,比如迭代器和算法,都是泛型编程的例子,它们都使用了模板的概念。
每个容器都有一个单一的定义,
比如 向量,我们可以定义许多不同类型的向量,比如 vector <int> 或 vector <string>
#include <stdio.h>
#include<iostream>
using namespace std;template <typename T1,typename T2>
void print(T1 value1,T2 value2){cout << "value=" << value1+value2 << endl;
}template <class T1,int SIZE>
class solution {
public:void print(T1 value) {cout << "value=" << value << endl;}void set(int i, int value) {if (i >= SIZE) {cout << "error" << endl;}else {array[i] = value;}}void print_array() {for (int i = 0; i < SIZE; i++) {cout << array[i] << " ";}cout << endl;}
private:int array[SIZE];
};
int main()
{print(23,23.23);print(23.67, 9);solution<double,5> s;s.set(0, 7);s.set(1, 2);s.set(2, 5);s.set(3, 19);s.set(4, 67);s.print_array();return 0;
}

2.C++模板是什么,底层怎么实现的?

编译器并不是把函数模板处理成能够处理任意类的函数;
编译器从函数模板通过具体类型产生不同的函数;
编译器会对函数模板进行两次编译:
在声明的地方对模板代码本身进行编译,在调用的地方对参数替换后的代码进行编译。
 这是因为函数模板要被实例化后才能成为真正的函数,在使用函数模板的源文件中包含函数模板的头文件,如果该头文件中只有声明,没有定义,那编译器无法实例化该模板,最终导致链接错误。

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

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

相关文章

【数据结构基础】-串-顺序结构的基本操作实现

2019.10.12 数据结构中串的基本操作实现&#xff0c;包括串的定义&#xff0c;串的初始化&#xff0c;赋值&#xff0c;获取串的长度&#xff0c;串的比较&#xff0c;连接串&#xff0c;求子串&#xff0c;清空串。 语言&#xff1a;c语言 运行环境&#xff1a;dev #include &…

大脑研究正在挑战超级计算,“人脑计划”或需提前部署百亿亿级超级计算机...

来源&#xff1a;DeepTech深科技人脑的复杂性正推动着超级计算释放更多的潜力。据了解&#xff0c;人脑包含大约 860 亿个神经元&#xff0c;可形成数万亿个接触点。如果以细胞分辨率对整个大脑进行成像&#xff0c;甚至会产生数 PB 范围内的数据&#xff0c;这样的的计算量令人…

02 算术、字符串与变量(1)

本章内容 1、交互式命令shell 2、整数算术 3、浮点算术 4、其他数学函数 5、字符串 6、字符串拼接 7、获取帮助 8、类型转换 9、变量和值 10、赋值语句 11、变量如何引用值 12、多重赋值 -------------------------------------- 在学习Python前&#xff0c;我们需要了解数据类…

C++学习——c语言和C++语言中的struct

C语言struct和Cstruct区别 C语言中&#xff1a;struct是用户自定义数据类型&#xff08;UDT&#xff09;&#xff1b; C中struct是抽象数据类型&#xff08;ADT&#xff09;&#xff0c;支持成员函数的定义&#xff0c;&#xff08;C中的struct能继承&#xff0c;能实现多态&am…

【数据结构基础】-线性表的顺序实现(数组实现)基本操作

2019.10.10 【数据结构-线性表的顺序结构】 基本操作&#xff1a;初始化&#xff0c;判断是否空表&#xff0c;清空表&#xff0c;获取表中的第i个元素&#xff0c;查找元素&#xff0c;插入元素&#xff0c;删除元素&#xff0c;获取表的元素个数。 抽象数据类型&#xff1a…

机器学习驱动技术是生物学进步的下一个突破

来源&#xff1a;ScienceAI作者&#xff1a;Immunai 联合创始人兼 CEO&#xff0c;Luis Voloch编译&#xff1a;绿萝数字生物学与 90 年代的互联网处于同一发展阶段&#xff08;早期、激动人心和变革性&#xff09;。当时&#xff0c;IP 地址的概念还很新&#xff0c;「精通技术…

makefile编译erlang

https://www.cnblogs.com/witton/p/6868963.html转载于:https://www.cnblogs.com/hshy/p/11096625.html

C++学习——内联函数

文章目录1.内联函数1.1 什么是内联函数1.2 内联函数的声明1.3 内联函数的条件2.成员函数与内联函数2.1 内联成员函数2.2 判断成员函数时候为内联函数3. 虚函数可以声明为inline吗1.内联函数 1.1 什么是内联函数 C提供一种提高函数效率的方法&#xff0c;即在编译时将被调函数…

实现调用API接口

API是一组封装好的函数&#xff0c;通过API&#xff0c;你可以为应用快速扩展功能&#xff0c;而无需理解它们是如何实现的&#xff0c;从而提升开发效率。通常&#xff0c;API服务商会提供API文档&#xff0c;那么如何根据文档来使用API呢&#xff1f; PS:该文章内容来自于阿里…

量子力学与机器学习相结合,预测高温下的化学反应

来源&#xff1a;ScienceAI编辑&#xff1a;凯霞在高温下从氧化物中提取金属不仅对于钢铁等金属的生产至关重要&#xff0c;而且对回收利用也必不可少。但当前的提取过程是碳密集型的&#xff0c;会排放大量温室气体。研究人员一直在探索开发「更绿色」的工艺方法。第一性原理理…

js实现右键单击打开自定义的菜单

今天分享一个&#xff0c;单击鼠标右键弹出自定义菜单&#xff0c;选中不同菜单选项&#xff0c;实现其对应功能 首先先自已定义一个菜单 <div id"menu"><ul><li>添加</li><li>删除</li><li>修改</li></ul>&l…

个人觉得好的文章链接推荐【转载,侵权立删】

声明&#xff1a;本篇博客为博主学习后端中觉得好的文章&#xff0c;不定期更新。上方是链接&#xff0c;下方是作者简介以及内容简介。均为转载&#xff0c;来源不限&#xff0c;若有侵权&#xff0c;请联系博主&#xff0c;或者是在评论区留言&#xff0c;侵权立删&#xff0…

DeepMind提出强化学习新方法,可实现人机合作

来源&#xff1a;AI前线作者&#xff1a;Ben Dickson译者&#xff1a;盖策划&#xff1a;凌敏本文来自 BDTechTalks 网站的“AI 研究论文评论”专栏。该专栏提供人工智能最新发现的系列解读文章。尽管人工智能研究人员正力图建立能在围棋、星际争霸到 Dota 等复杂游戏中击败人类…

C++学习——类的初始化

文章目录1.类通过构造函数进行数据成员初始化2.类成员初始化方式&#xff1f;3.什么情况下必须使用列表初始化&#xff1f;4.为什么用列表初始化成员变量会快一些&#xff1f;5.派生类构造函数的执行顺序1.类通过构造函数进行数据成员初始化 一般来说&#xff0c;类中的数据成…

队列模块(Queue)

#!/usr/bin/env python # codingutf-8import Queue import time https://docs.python.org/2/library/queue.htmlQueue模块在Python 3中改名为queue了。 Queue模块实现了多个生产者消费者列队&#xff0c;可以在多线程中进行安全的信息交换。 Queue模块定义了三个类&#xff1a;…

C++学习——构造函数,析构函数与虚函数关系

文章目录1.构造函数&#xff0c;析构函数可以为虚函数吗&#xff1f;2.析构函数和构造函数的作用&#xff1f;3.构造函数和析构函数调用顺序&#xff1f;4.类什么时候会调用析构函数&#xff1f;1.构造函数&#xff0c;析构函数可以为虚函数吗&#xff1f; 构造函数不可以&…

军事大脑的构建对未来战争的影响

前言&#xff1a;本文是我与军事科学院的赵蔚婷,王婉两位老师在2020年4月发表的一篇论文&#xff0c;首发在《中国科技论文在线》&#xff0c;是将互联网大脑模型与军事领域结合&#xff0c;形成军事大脑和军事超级智能的概念体系&#xff0c;重点提出军事神经元和军事云反射弧…

00001-整数倒置-Java-leetcode-要考虑到溢出问题

leetcode-整数倒置 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode-cn.com/problems/reverse-integer 著作权归领扣网络所有。商业转载请联系官方授权&#xff0c;非商业转载请注明出处。给出一个 32 位的有符号整数&#xff0c;你需…

size - 列出段节大小和总共大小

总览 (SYNOPSIS) size[-A|-B|--formatcompatibility] [--help] [-d|-o|-x|--radixnumber] [--targetbfdname] [-V|--version] objfile...描述 (DESCRIPTION) GNU 的 size 程序 列出 参数列表 objfile 中, 各 目标文件(object) 或 存档库文件(archive) 的 段节(section)大小 ---…

C++学习——默认构造函数

默认构造函数在这篇博客中已经写得很明白。 https://blog.csdn.net/bear_n/article/details/72798301 文章目录1.什么是默认构造函数&#xff1f;2.什么情况会自动生成默认构造函数&#xff0c;即编译器生成默认构造函数&#xff1f;1.什么是默认构造函数&#xff1f; 默认构造…