东风哈哈哈 发表于 2025-2-10 20:54:02

6666666666666666666666666666666666

过冰客 发表于 2025-2-10 22:04:14

感谢大佬分享

王小懒 发表于 2025-2-17 00:15:12

学习一下

小诺 发表于 2025-2-17 23:49:21

6666666666666

baishun 发表于 2025-2-18 08:42:46

666

LM904917764 发表于 2025-2-18 17:01:21

谢谢分享

云帆孤影 发表于 2025-2-21 10:45:08

2    模板包括:函数模板和类模板

      模板参数列表的写法:template <typename T1,typename T2,...>,其中typename代表任意类型和class可以等价替换

      函数模板和类模板的写法:就是在模板的下面写一个使用T1 T2的函数或者类

      函数模板的特点:可以和其他函数模板和普通函数形成重载,调用的时候普通函数的优先级大于函数模板

      函数/类模板的实例化:

            包含:隐式和显式实例化

                显式实例化:

                  含义:就是显式的写出指定类型的函数/类模板声明

                  代码:template 类型 名字<>(),<>内写出指定类型,()中如果有typename类型的变量,直接显式的写出来类型,没有就不写

                  注意:如果某种类型的显式实例化没有写,那么调用这种类型的函数/模板类就会出错

                隐式实例化:

                  含义:不显示的写出来指定类型的模板声明,在调用的时候写指定的类型

      函数模板和类模板在模块化结构中:不能分为头文件和实现文件,但是要避免头文件臃肿可以:在头文件的声明后紧挨着#include "实现文件名字"

      类模板的实例化:类名<typename T1,typename T2,...> 对象;

      类模板的综合使用:

            已知定义了一个类模板A,里面有各种函数,如果在类外进行具体实现?

                tmplate<参数类型 参数名>

                函数类型 类名<参数名,参数名>::函数名(参数类型 参数名){

               

                }

            类模板中可以定义函数模板或类模板类型的成员模板,成员模板不能是虚的

    模板的特化: 包含:全特化和偏特化(也叫部分特化)

      含义: 全特化:就是再写一个同名的模板且给模板的通常参数T指定特定类型 部分特化:给模板参数指定特殊情况的实现

      怎么写?:

            1模板参数列表写成template <>

            2类或函数名后面加<指定类型>

    模板参数:

      模板的参数类型: 可以是类型参数T,可以是指定整形参数,也可以有默认值

      模板可变参数:

            含义:可以让模板的参数类型的个数和参数的个数可变

            写法:






            打包和解包:

                打包:是在函数模板参数列表中定义参数包的过程

                解包:是在函数调用中使用 ... 语法将参数包展开放入函数调用之中的过程

                  解包关键代码:args...

                  解包通常用于:递归调用(args...) 的时候

                        解包递归调用代码:

                            template <typename T, typename ...Args> // 模板参数列表

                        函数为:

                            void print(T t1, Args ...args) { // 函数参数包

                              cout << t1 << ""; // 打印第一个参数

                              print(args...); // 递归调用,打印余下的参数

                            }

                        调用print(1,"yunfan");的时候会输出1 yunfan 和一个print()的输出,所以一定要在函数模板前写一个无参print

    模板的位置:通常在全局,或者在类中

yuanrang 发表于 2025-2-21 13:53:42

很不错的教程

zx907 发表于 2025-2-21 13:59:54

1111

abner 发表于 2025-2-23 21:39:17

谢谢分享
页: 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14
查看完整版本: 彭涛Python爬虫训练营