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)
blank

相关推荐

  • qmake自定义函数「建议收藏」

    qmake自定义函数「建议收藏」使用qmake编写构建步骤时,如果较为复杂或重复的行为可以使用函数来实现。

  • JAVA虚拟机(JVM)以及跨平台原理(JDK、JRE、JVM)

    JAVA虚拟机(JVM)以及跨平台原理(JDK、JRE、JVM)

  • leetcode 最长有效括号_字符指针赋值为什么不能加大括号

    leetcode 最长有效括号_字符指针赋值为什么不能加大括号给你一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。示例 1:输入:s = “(()”输出:2解释:最长有效括号子串是 “()”示例 2:输入:s = “)()())”输出:4解释:最长有效括号子串是 “()()”示例 3:输入:s = “”输出:0题解括号匹配:(看作+1,)看作-1,所有满足条件的括号应该是前缀和>=0,并且总和==0class Solution {public: const int INF =

  • Python 股票历史数据的获取

    Python 股票历史数据的获取本文主要讨论的是pytho免费股票数据的获取及处理。国内提供股票数据的接口如sinajs,money.163.com,yahoo,它们提供的API接口不同,每家提供的数据大同小异,可以选择一家的数据来处理。

  • USART与UART的区别

    USART(universalsynchronousasynchronousreceiverandtransmitte):通用同步异步收发器USART是一个串行通信设备,可以灵活地与外部设备进行全双工数据交换。UART(universalasynchronousreceiverandtransmitter):通用异步收发器异步串行通信口(UART)就是我们在…

  • spring定时任务详解(@Scheduled注解)

    spring定时任务详解(@Scheduled注解)在springMVC里使用spring的定时任务非常的简单,如下:(一)在xml里加入task的命名空间xmlns:task=”http://www.springframework.org/schema/task”http://www.springframework.org/schema/taskhttp://www.springframework.org/schema/task

发表回复

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

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