C++学习之路——名字空间与模板

C++学习之路——名字空间与模板例题:把课程当中的函数模板与类模板两个程序自己写一遍并写好注释。代码如下:#include “pch.h”#include<vector>#include<string>#include <iostream>using namespace std;//模板类template<class T> class Stack{publ…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

例题:

把课程当中的函数模板与类模板两个程序自己写一遍并写好注释。

代码如下:

#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;
}

结果如下:
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170995.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • supervisor常见报错[通俗易懂]

    supervisor常见报错[通俗易懂]supervisor常见报错

    2022年4月24日
    42
  • Polar码概述[通俗易懂]

    Polar码概述[通俗易懂]2016年11月18日,在美国内华达州里诺召开的3GPPRAN1#87次会议,确定PolarCode作为5GeMBB(增强移动宽带)场景下控制信道编码方案。2008年,ErdalArikan在国际信息论ISIT会议上首次提出了信道极化(ChannelPolarization)的概念;2009年在“IEEETransactiononInformationTheory”期刊上

    2025年7月29日
    4
  • 常用电压电流转换原理图

    常用电压电流转换原理图读书笔记———-经典的电压转换电流的原理图设计——————————–图片系转载,供自己记忆用。

    2022年6月2日
    53
  • chmod的用法_group用法与语法

    chmod的用法_group用法与语法介绍Linux中的Chmod命令用于更改或分配文件和目录的权限。在Linux/Unix系统中,文件和目录的可访问性是由文件所有权和权限决定的。在上一篇文章中,我们了解了如何使用chown命令管理文件和目录的所有权。在本教程中,我们将介绍chmod命令。chmod命令(changemode的缩写)用于管理文件和目录权限,并确定谁可以访问它们。现在让我们深入了解文件和目录权限的本质,以及如何修改它们。Linux权限文件和目录可以属于文件(u),组(g)或其他(o)的所有者u-所有人的权限g

    2022年10月20日
    4
  • cmd命令怎么切换盘符_cmd命令行怎么切换到d盘

    cmd命令怎么切换盘符_cmd命令行怎么切换到d盘用命令行,要从C盘切换到F盘,然后傻傻地输入了cdcd是在同一个盘下切换空间用的盘之间切换应该用:F:盘符名加一个冒号,大小写不限。

    2022年10月3日
    4
  • 【23】进大厂必须掌握的面试题-50个spring面试

    让我们从Spring面试问题的第一部分开始,即“一般问题”。 一般问题–Spring面试问题 1.不同版本的Spring Framework的主要功能是什么? 版 商标 特征 Sp…

    2020年11月15日
    669

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号