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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 三星刷机工具Odin图文刷机教程

    三星刷机工具Odin图文刷机教程解压完,双击安装包选择语言,语言栏选择simplifiedCinnese国家选择c朱雀网络www.zhuquewl.comROM包下载hina安装路径可选择其他驱动盘,或者直接安装亦可注意事项: 1)手机电池有个一半的电量或是更少点都没问题,反正不要刷机过程中没电就行。真是没电了,也没事,充电,重刷就行了。2)给手机做好备份。3)下载刷机包,就自己准备着下载。4)下载刷机工具,

    2022年7月21日
    15
  • Jenkins的主要作用

    Jenkins的主要作用说明:Jenkins折腾了好几个月了,打算写个系列记录下。有时间会尽量更新的。第一章Jenkins是什么?Jenkins 是一个可扩展的持续集成引擎。主要用于:l 持续、自动地构建/测试软件项目。l 监控一些定时执行的任务。Jenkins拥有的特性包括:l 易于安装-只要把jenkins.war部署到servlet容器,不需要数据库

    2022年5月31日
    38
  • python中的变量命名规则

    python中的变量命名规则ThereareonlytwohardthingsinComputerScience:cacheinvalidationandnamingthings.在计算机科学领域只有两件难事:缓存失效和给东西起名字变量用的好或不好,和代码质量有着非常重要的联系,合理的使用变量,可以让你的代码可读性更高并且更加简洁。python中的变量命名规则1.变量命名2.变量命名的描述性3.变量名尽量短,但是不要太短4.合理使用变量5.变量定义尽量靠近使用6.合理使用namedtuple/

    2022年5月31日
    50
  • Redis在Laravel项目中的应用实例详解

    Redis在Laravel项目中的应用实例详解

    2021年10月24日
    102
  • 常用的Java工具,16个

    常用的Java工具,16个在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类。以下工具类、方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码。一.org.apache.commons.io.IOUtilscloseQuietly:关闭一个IO流、socket、或者selector且不抛出异常,通常放在finally块toString:转换IO流、Uri、byte[]为Stringcopy:IO流数据复制,从输入流写到输出流中,最大支持2GB

    2022年7月7日
    26
  • 拉姆达语法_map的常用方法

    拉姆达语法_map的常用方法importorg.apache.commons.collections4.MapUtils;@OverridepublicList<Map<String,Object>>getGuidelineSceneStatistical(StringdeptCode){List<Map<String,Object>>mapList=newArrayList<>();List<

    2022年9月2日
    2

发表回复

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

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