C++学习之路——名字空间与模板
例题:
把课程当中的函数模板与类模板两个程序自己写一遍并写好注释。
代码如下:
#include "pch.h"
#include<vector>
#include<string>
#include <iostream>using namespace std;//模板类
template<class T> class Stack
{public:void pop(); //出栈void push(T const&); //入栈 T top(); //返回栈顶bool empty() //如果空 返回真{return elems.empty();}private:vector<T> elems;
};//入栈
template<class T>
void Stack<T>::push(T const &elem)
{//元素入栈elems.push_back(elem);
}//出栈
template<class T>
void Stack<T>::pop()
{if (elems.empty()){cout << "栈为空,不能出栈" << endl;}elems.pop_back(); //删除最高后一个元素}//返回栈顶
template <class T>
T Stack<T>::top()
{if (elems.empty()){cout << "栈为空,不能返回栈顶" << endl;}return elems.back();
}template <typename TT>TT Max(TT a, TT b)
{return a > b ? a : b;
}
int main()
{cout << "模板类部分:" << endl;Stack<int> intstack;intstack.push(1);intstack.push(5);intstack.push(6);cout << "int的结果为:" << intstack.top() << endl;intstack.pop();cout << "int的出栈结果为:" << intstack.top() << endl;Stack<string> stringstack;stringstack.push("李素");stringstack.push("赵刚");stringstack.push("王伟");cout << "string的结果为:" << stringstack.top() << endl;stringstack.pop();cout << "string出栈的结果为:" << stringstack.top() << endl;cout << endl;cout << "模板函数部分:" << endl;cout << "最大值为:" << Max(1, 222) << endl;cout << "最大值为:" << Max(8888, 222) << endl; cout << "最大值为:" << Max("王刚单","老李") << endl;return 0;
}
结果如下:
C++学习之路——名字空间与模板相关推荐
- C++程序设计语言学习笔记:名字空间
1.名字空间(namespace)的概念用来直接表示本属一体的一组特性,例如库代码.名字空间的成员都位于相同的作用域中,无需特殊符号即可相互访问,而从名字空间外访问它们就需要显式符号. 2.显式限定: ...
- JavaWeb学习之路——SpringBoot 中thymeleaf模板用法(三)
thymeleaf模板用法 thymeleaf通过它特定的语法,对HTML的标记做渲染,能够访问后台的动态数据,实现静态html界面的动态化 1.添加架包 <!--引入动态模板-->< ...
- C++学习之路: 单例模板
引言: 1.单例模式的目的:确保一个类只有一个实 例,并提供对该实例的全局访问. 2. 单例模式也称为单件模式.单子模式,可能是使用最广泛的设计模式.其意图是保证一个类仅有一个实例,并提供一个访问它的 ...
- 我的QT5学习之路(目录)
说明:本目录内容为自己学习的心得和记录,参考资料来源于网络,学习过程中多方汲取,如有错误,欢迎指正和批评. Qt开发相关文章目录 一.我的Qt学习之路系列 1.[笔记]我的Qt学习之路(一)--浅谈Q ...
- C/C++学习之路: 模板和异常
C/C++学习之路: 模板和异常 目录 模板 类型转换 异常 1. 模板 1. 模板概述 c++提供了函数模板(function template),函数模板实际上是建立一个通用函数,其函数类型和形参 ...
- C++ 语言学习 day01 (linux ),基本输入输出错误输出函数,名字空间的含义,内联函数,缺省参数,引用 ,、new操作符
1.介绍c++ C++头文件风格 c++ 老风格:以.h结尾 是c语言风格 stdio.h (尽量不) c++的转换风格: 去掉.h 在文件名前加c 例如#include <cstdio&g ...
- python na不显示 占位_Python学习之路—Python基础(一)
前言 在Python学习之路-初识Python一文中,简单的介绍了Python的基本信息,搭建了Python的基础运行环境,这篇文档将主要展现一些Python的入门必备内容,如有错误或遗漏的地方,欢迎 ...
- Go语言学习之路(二)
Go语言学习之路(二) 面对对象编程思想 抽象 封装 继承 接口 文件 命令行参数 Json 序列化 反序列化(unmarshal) 单元测试 Redis Redis简介 Redis基本使用 Go连接 ...
- 大数据学习之路 JUC篇
大数据学习之路 JUC篇(1) 前提说明 本人是一名学生,茫茫it行业的一名卑微的小白,这是我第一次写博客.其原因是学着学着知识发现回顾的时候差不多全忘记了!!为了总结.复习自己以往学到过的有关大数据 ...
- 一个程序员的Java和C++学习之路(整理)
转载:http://blog.csdn.net/ajian005/article/details/8003655 Java学习之路 一直有这么个想法,列一下我个人认为在学习和使用Java过程中可以推荐 ...
最新文章
- 周跃教授:脊柱微创手术机器人在脊柱手术中的应用前景 (转载)
- 编写好代码的10条戒律
- asp.net Repeater取得CheckBox选中的某行某个值的c#写法
- 计算机在材料科学的应用论文,计算机在材料科学中的应用论文
- Fiori Hash url的生成原理
- 新年第一天,3000台Apache服务器宕机
- 小学生python游戏编程6----碰边变颜色的小球
- MATLAB画甘特图
- php开发天气可视化,R语言天气可视化应用 | 粉丝日志
- 加速度速度位移的计算
- EXCEL 带公式单元格自动填充
- 教你如何自己写一个微信小游戏「跳一跳」外挂
- NTKO OFFICE控件手动安装, 解决IE浏览器无法加载 Activex 控件的解决办法
- 微信H5分享接口问题(避开99%坑)
- 不用找,你想要的中国风ppt模板素材都在这里
- vue实现 【echarts中 “7种” Pie饼图图例】组件的封装
- 深入了解人工智能在建筑领域中的应用
- 【qcom Android camera调试纪要】
- 【附源码】计算机毕业设计SSM美容美发店会员管理系统
- python计时器程序设计总框图_【怎么用python编写计时器?这个编程的方法你一定不要错过】- 环球网校...
热门文章
- 世界著名管理定律:管人用人育人留人定律
- 使用el-tree组件当后台返回的数据过多导致页面反应时间过长或页面崩溃的问题及解决方案
- 新知实验室-基于腾讯云音视频TRTC的微信小程序实践
- Ubuntu 20.04LTS 搜狗输入法不显示图标
- 如何批量生成ISBN条码
- 如何把桌面计算机和回收站隐藏,电脑回收站怎么隐藏图标,隐藏我的电脑和回收站...
- Android系统模拟位置的使用方法
- 鸿蒙系统怎么关闭地理位置通知,鸿蒙OS 获取设备的位置信息
- 信噪比(SNR or S/N)
- jquery ajax传参