C++程序设计模板,向量和栈

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

C++程序设计模板,向量和栈

1. 模板基础

	模板功能提供了在函数和类中将类型作为参数的能力,可以设计具有通用类型的函数和类,而编译
	器可在编译时将通用类型确定为一种特定类型
//一个求最大值的通用模板
GenericType maxValue(GenericType value1,GenericType value2){
	if(value1 > value2){
		return value1
	}else return value2;
}

# include <iostream>
# include <string>
using namespace std;

template<typename T>//一定要有typename或class,也被称为模板前缀,推荐用typename
T maxValue(T value1,T value2){
	if(value1 > value2){
		return value1
	}else return value2;
}
//字符串比较,比较的是指向字符串的位置

3. 一个通用的排序函数

template<typename T>
void sort(T list[] , int size){
	for(int i=0; i< size; i++){
		T currentMin = list[i];
		int currentMinIndex = i;
		
		for(int j=i+1 ; j<size ; j++){
			if(list[j] < currentMin){
				currentMin = list[j];
				currentMinIndex = j;
			}
		}
		if(currentMinIndex != i){
			list[currentMinIndex] = list[i];
			list[i] = currentMin;
		}
	}
}

//打印通用函数
template<typename T>
void printArr(const T list[], int size){
	for(int i =0 ; i< size ;i++){
		cout << list[i] << " ,"; 
	}
	cous << endl ;
}

4. 模板类

	可以实现具有通用类型的类
	对于模板类,定义和实现放在一个文件里更为安全
#ifndef STACK_h
#define STACK_h

template<typename T >//T= int>//默认类型为int,默认类型只用于模板类>
class Stack			 //<typename T,int capacity>赋予数组容量
{
public:
	Stack();
	bool empty() const;
	T peek() const;
	void push(T value);
	T pop();
	int getSize() const;
private:
	T elemens[100];
	int size;
}

template<typename T>
Stack<>::Stack(){
	size = 0;
}
template<typename T>
bool Stack<>::empty() const{
	return size == 0;
}
template<typename T>
T Stack<>::peek() const{
	return elements[size-1];
}
template<typename T>
Stack<>::push(T value){
	elements[size++] = value;
}
template<typename T>
T Stack<>::pop(){
	return elements[--size];
}
template<typename T>
int Stack<>::getSize() const{
	return size;
}

#endif

5. c++向量类

	提供了通用类vector,可用于存储对象列表
vector<elementType> vectorName;
其中包含较多用法

6. 用vector代替数组

	向量可以用来替换数组,且比数组更灵活,但数组更为高效
	二维数组的向量表示
vector<vector<int> > vectorName(size);
C++程序设计(七)—— 类模板向量 一、类模板         如果将类看作某些数据类型的框架,然后将这些数据类型从类中分离出来形成一个通用的数据类型T,为这个数据类型设计一个操作集,并且允许原来那些数据类型的类都能使用这个操作集,这将避免因为类的数据类型不同而产生的重复性设计。类型T通常被称为类模板,在编译时,由编译器将类模板与某种特定的数据类型联系起来,就产生一个特定的类(模板类)。 1、类模板基础知识 ⑴ 类模板的成分... 阅读详情

相关推荐

C++知识点总结

过两天就要考C++了,这次一点都不慌张害怕,虽然看书、做题、总结也就5、6天的时间,但三遍读书法算是比较完整的过了一遍,模拟成绩也还不错,希望能够取得好成绩。O(∩_∩)O~           看了两本书,自考课本(编号04737)C++程序设计谭浩强版的,我比较推荐后一本,浅显易懂,知识点多,例子多,可以自己多多动手写一写。 下面对学习过程中需要注意的知识点做了一些总结导图:

好记性不如烂笔头--玲博小记 2万+

C++学习笔记——标准模板

C++标准模板库(STL)是C++的一个重要组成部分,它提供了一套丰富的通用数据结构算法。STL以其高度模块化、可复用的特性,在C++编程中发挥着重要作用。本篇博客将带你深入了解STL,并介绍其常见的组件使用方法。C++标准模板库(STL)是C++语言的一个标准库,它提供了一套通用的数据结构算法,以支持高效的编程。STL的设计目标是使程序员能够以简洁、高效可复用的方式开发代码。// 输出vector的大小return 0;

华数云图小分队的博客 1718

C++向量的加减乘运算源码(cpp)(无除法)

C++向量的加减乘运算源码(cpp)(无除法)

c++常用模板(持续更新中)

【代码】c++常用模板(持续更新中)

2301_82112620的博客 963

C++模板

c++模板

weixin_63246738的博客 7118

C++】—— 模板介绍

模板的详细介绍

m0_56069910的博客 3245

(B站黑马C++模板

记录代码,只用于复习

IT OR 考公? 2861

on the way to c++

c/c++ 入门的知识结构

xinling的博客 436

STL (模板

序列式容器 向量(vector) 连续存储的元素 列表(list) 由节点组成的双向链表,每个结点包含着一个元素 双端队列(deque) 连续存储的指向不同元素的指针所组成的数组 适配器容器 (stack) 后进先出(LIFO)的值的排列 队列(queue) 先进先出(FIFO)的值的排列 优先队列(priority_queue) 元素的次序是由作用于所存储的值对上的某种谓词决定的的一种队列 关联式容器 集合(set) 由节点组成的红黑树,每个节点都包含着一个元素,节点之间以某种作用于元素队的谓词排

weixin_41454036的博客 215

C++模板——(4)C++泛型编程与标准模板库简介

C++模板——(4)C++泛型编程与标准模板库简介 容器: 1、向量: 2列表: 3、集合: 4、双端队列: 5、: 6.映射: 例:使用向量,将字符串传送到字符向量中并显示。 四、算法: 五、选代器:

一个正在学习C/C++的博主 1936

C++程序设计】-类模板向量

1.类模板 类型T并不是类,而是对类的描述,常称之为类模板 2.类模板声明的一般方法如下: template&lt;类模板参数&gt;class 类名{//类体} 在类体外面定义成员函数时,必须用template重写类模板声明。格式如下: template&lt;模板参数&gt;(这里的模板参数通常可指:class T) 返回类型 类名&lt;模板类型参数&gt; ::成员函数名(函数...

好学若饥,谦卑若愚 762

自考 C++ 杂记 —— 类模板向量

目录 一、类模板 1.1 模板类基础语法 1.2 模板类的派生与继承(仅介绍模板类继承非模板模板类派生一个类模板的情况) 二、向量与泛型算法 1.定义向量列表 2.泛型指针 3.向量最基本的操作方法 历年真题: 一、类模板 1.1 模板类基础语法 声明类模板 template <typename T> 或者template <cla...

Big Fish 大鱼 的个人博客 432

c++之泛型程序设计c++标准模板

c++ —泛型程序设计c++标准模板库 泛型程序设计: 1、编写不依赖于具体数据类型的程序 2、将算法从特定的数据结构中抽象出来,成为通用的 3、c++模板为泛型程序设计奠定关键基础 STL简介 STL中的基本组件 1、容器 2、迭代器 3、函数对象 4、算法 容器(container): 容纳、包含一组元素的对象 基本容器模板: 1、顺序容器:array(数组),vector(向量...

shanjixin的博客 806

c++第十章泛型程序设计c++标准库模板

STL提供了常用的数据结构算法,使用STL的模板时所提供的类型参数既可以是c++标准库中已经有的类型也可以是自定义的类型,只要这些类型是所要求的概念的模型,因此STL是一个开放的体系。(2)我们可以用概念来描述泛型程序设计中作为参数的数据结构所具备的功能,这里的概念是泛型程序设计中的一个术语,他的内涵是这些功能,他的外延是具备这些功能的所有数据类型。另外两个概念也具备包含被包含关系,对于两个不同的概念 AB,如果A所需的所有功能也是B的功能,那么就说概念B是概念A的子概念。

zyq2217330101的博客 370

【上海大学《面向对象程序设计A》课程小项目报告】抽象向量模板及其派生类

上海大学《面向对象程序设计A》课程小项目报告//抽象向量模板//派生向量类//派生字符串类//测试及异常处理//联合测试

HackerKevon的博客 1432

青少年编程与数学 02-010 C++程序设计基础 38课题、模板的使用

C++中合理使用模板可提升代码复用性、灵活性可维护性。模板适用于编写通用算法、容器、设计模式及数学库等。应避免过度使用以减少编译时间代码复杂度,同时合理利用类型参数、非类型参数与默认参数。模板定义通常置于头文件确保可见性,并通过内联定义避免重复。

明月看潮生的博客 2411

C++程序设计笔记」第十章 泛型程序设计C++标准模板

第十章 泛型程序设计C++标准模板库 泛型程序设计及STL的结构 泛型程序设计的基本概念 编写不依赖于具体数据类型的程序 将算法从特定的数据结构中抽象出来, 成为通用的 C++模板为泛型程序设计奠定了关键的基础 术语:概念 用来界定具备一定功能的数据类型。例如: 将“可以比大小的所有数据类型(有比较运算符)”这一概念记为Comparable 将“具有公有的复制构造函数并可以用‘=’赋值的数据类型”这一概念记为Assignable 将“可以比大小、具有公有的复制构造函数并可以用‘=’赋值的所有数据类型”

wg_cheeky的博客 321

04737自考C++程序设计知识点总结、考点串讲、考前复习

04737自考C++程序设计知识点总结引言第一章 认识C++的对象1.1 初识C++的函数对象1.2 认识C++语言面向过程编程的特点1.3 程序的编辑、编译运行的基本概念第二章 从结构到类的演变2.1 结构的演化2.2 从结构演变一个简单的类2.3 面向过程与面向对象2.4 C++面向对象程序设计的特点2.5 使用类对象2.6 string对象数组与泛型算法更新中~未完待续2020/10/21第三章 函数与函数模板第四章 类与对象第五章 特殊函数成员第六章 继承派生第七章 类模板向量第八章 多

weixin_46287713的博客 1万+

关于泛型程序设计c++标准模板

1. 泛型程序设计 所谓泛型程序,就是不依赖与某种特定的数据结构的程序。 前面所学的模板,就是泛型程序设计中极其有用的工具。设计的主要思想就是将算法从特定的数据结构里抽象出来。 概念(concept ) - 泛型程序设计中 作为参数的数据类型所具有的功能 模型(model) - 具备一个概念需要的基本数据结构。 如果将概念视为集合来理解子概念,我觉得更容易。 如果B

theGloves的博客 677
上一篇: C++程序设计动态内存管理
下一篇: C++程序设计文件输入和输出
唐_厨
博客等级 码龄8年 0粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值