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

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • JavaHTTP下载视频

    JavaHTTP下载视频

  • PLSQL 基础教程 三 查询(SELECT)

    PLSQL 基础教程 三 查询(SELECT)本节教程将继续介绍SQL基础知识中的SELECT相关的一些知识,包括基础语法、多表连接、去重、排序、子查询等等SELECT方面的基础知识。SELECT是SQL中使用的比较多的,主要是用于筛选数据,获取满足某些条件的数据,既可以是单条数据,也可以是多条数据,还可以是统计数据或者分组数据等等,后续教程将会一一介绍。

  • silverlight 播放器,丑丑版

    silverlight 播放器,丑丑版

  • django drf jwt_jwt工作原理

    django drf jwt_jwt工作原理前言带着问题学习是最有目的性的,我们先提出以下几个问题,看看通过这篇博客的讲解,能解决问题吗?什么是JWT?为什么要用JWT?它有什么优势?JWT的认证流程是怎样的?JWT的工作原理?我们

  • JavaScript换行符的使用[通俗易懂]

    JavaScript换行符的使用[通俗易懂]JavaScript中的三种输出方式document.write()页面上输出console.log()控制台输出alert()弹窗输出其中document.write()输出内容中换行需要使用HTML中的标签使用</br>,在其中键入\n,不会显示,但也不会有换行效果。document.write()当直接键入\n时:document.write(“君不见,黄河之水天上来奔流到海不复回。\n君不见高堂明镜悲白发,朝如青丝暮成雪。”);当把..

  • jQuery鼠标滚动垂直全屏切换代码

    体验效果:http://hovertree.com/texiao/jquery/68/源码下载:http://hovertree.com/h/bjaf/f643upc4.htm代码如下:转自:htt

    2021年12月24日

发表回复

您的电子邮箱地址不会被公开。

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