Essential C++ 笔记 - 第三章泛型编程风格

这篇笔记深入探讨了C++的泛型编程,包括模板的使用,如typename关键字在处理类模板时的作用;介绍了序列式容器如vector和list,以及关联式容器如set和map的特性;讨论了泛型算法的基本操作,如比较、赋值、检查空状态、获取大小和清空容器;最后提到了仿函式(Function Object)的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Essential C++ 笔记 - 第三章泛型编程风格

一、模板

// 函数模板 
// 定义
template <typename T1, typename T2>
T1 test(T2 t) {
   
   
	// ...
}
// 调用
float ret =  test(10);

// 定义
template <int Value> 
int test() {
   
   
	int ret = Value;

	return ret;
}
// 调用
int ret = test<10>();

// 类模板
// 定义
template <typename T>
class test {
   
   
private:
	T t;
public:
	void show(T t1);
};

template <typename T>
void test::show(T t1){
   
   
	// ...
}

// 调用
test<int> t;

template 与 template 一般情况下是通用的。但是,当T是一个类,而这个类又有子类时,应该使用 template

// typename T::innerClass myInnerObject;
// 这里的typename告诉编译器,T::innerClass是一个类,程序要声明一个T::innerClass类的对象,而不是声明T的静态成员。

二、容器
1、序列式容器( Sequential Container )
序列式容器用来维护一组排列有序、型别相同的元素。

#include <vector>
#include <list>
#include <deque>
using namespace std;

// 产生空的容器
list<string> slist;
vector<int>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值