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


相关推荐

  • MySQL慢查询日志分析详解[通俗易懂]

    MySQL慢查询日志分析详解[通俗易懂]MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10S以上的语句。默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢…

    2022年10月12日
    0
  • docker-compose 2.10.2 解决transport: Error while dialing unable to upgrade to h2c, received 404报错

    docker-compose 2.10.2 解决transport: Error while dialing unable to upgrade to h2c, received 404报错docker-compose2.10.2解决listingworkersforBuild:failedtolistworkers:Unavailable:connectionerror:desc=”transport:Errorwhiledialingunabletoupgradetoh2c,received404″

    2025年6月13日
    0
  • drone无人机操作教程_无人机怎么起飞教程

    drone无人机操作教程_无人机怎么起飞教程教程:使用DroneKit在室内控制无人机DroneKit-Python是一个用于控制无人机的Python库。DroneKit提供了用于控制无人机的API,其代码独立于飞控,单独运行在机载电脑(CompanionComputer)或其他设备之上,通过串口或无线的方式经MAVLink协议与飞控板通信。除了DroneKit-Python以外,还有DroneKit-Android以及DroneKit-C

    2022年8月15日
    54
  • union 时只能查出一个表中的信息,另一个表只能查出字段

    union 时只能查出一个表中的信息,另一个表只能查出字段

    2021年10月15日
    43
  • vue filters 是什么?怎么使用?

    vue filters 是什么?怎么使用?vuefilters是什么?首先:filter翻译成中文是过滤器的意思。而在Vue中作用其实就是对字段进行预处理怎么使用呢?就用一个小Demo,讲解一下!目的:对字段进行处理,打印出“Helloworld!!!”首先,打印出“Helle”<template> <view> {{demo}} </view></template…

    2022年5月21日
    45
  • asp.net mvc实现文件下载「建议收藏」

    asp.net mvc实现文件下载「建议收藏」前段时间一直对如何解决文件下载的问题比较困惑,对文件下载的问题一直都是用的前端的方式解决的,代码如下//下载functiondownload(filePath){window.open(filePath);}但是这个方法有他的缺陷:1.下载的文件后缀必须为iis程序池中存在的文件2.此方法是通过浏览器打开服务器文件,无法直接下载近期看了asp.net下载文件几种方式…

    2022年7月22日
    11

发表回复

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

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