当前位置: 首页 > ai >正文

C++学习细节回顾(汇总二)

一.初始化列表相关
1.初始化顺序受申明顺序影响
2.在必要时可以部分不采用初始化列表,避免受特性1影响

二.非类型模板参数
template< class T , size_t N = 10 >

三.特化–特殊化处理
template< class T >
bool less(T left , T right)
{
return left<right;
}
当调用时传入的是地址,这时候比较逻辑存在错误
因此要采用特化(类似于类的显示实例化)
template<>
bool less<Date*>(Date * left ,Date* right)
{
return *left<*right;
}
注意:模板函数一般不采用特化,直接写个匹配的普通函数就行了(有现成吃现成)

小细节讲解:
bool less(const T& left…)
特化:
bool less< const Date*& left> 不对特化不成功,模板函数const修饰的是left ,这里修饰的是 * left
bool less< Date* const & left> ,正确的

四.类模板–特化
1.全特化 template<> class Date< int char >
2.偏特化有两种一种是部分特化,一种是对参数形成限制
template< class T1> class Date< class T1, char >//部分特化
template< class T1 class T2> class Date< T1* ,T2* >//对参数形成限制

类模板特化应用示例
有如下专门用来按照小于比较的类模板Less:
template
struct Less
{
bool operator()(const T& x, const T& y) const
{
return x < y;
}
};

sort( v1.begin() , v1.end() , Less < Date >( ));
// 可以直接排序,结果错误日期还不是升序,而v2中放的地址是升序
// 此处需要在排序过程中,让sort比较v2中存放地址指向的日期对象
// 但是走Less模板,sort在排序时实际比较的是v2中指针的地址,因此无法达到预期
sort(v2.begin(), v2.end(), Less<Date>( ));*
解决方案:// 对Less类模板按照指针方式特化
template<>
struct Less<Date*>
{
bool operator()(Date* x, Date* y) const
{
return *x < *y;
}
};

在这里插入图片描述

五.编译.声明和定义相关问题
在这里插入图片描述
在这里插入图片描述

六…(难点目前不会??????)
1.仿函数
2.普通迭代器和const迭代器

在这里插入图片描述

http://www.xdnf.cn/news/6130.html

相关文章:

  • 基于Spring AI与Hugging Face TGI构建高效聊天应用:从配置到实践全解析
  • centos中postfix的作用
  • 用git下载vcpkg时出现Connection was reset时的处理
  • SpringBoot集成Kafka
  • Python × CARLA:如何在自动驾驶仿真世界里打造智能驾驶系统?
  • ansible进阶02
  • vivado原语
  • AI编程:使用Trae + Claude生成原型图,提示词分享
  • 一次因校时服务器异常引起的性能差异分析
  • 浏览器相关
  • React Native矢量图标全攻略:从入门到自定义iconfont的高级玩法
  • 深入浅出 IPFS 在 DApps 和 NFT 中的应用:以 Pinata 实战为例
  • Java 框架配置自动化:告别冗长的 XML 与 YAML 文件
  • 科普:影像空间分辨率
  • 院校机试刷题第二天:1479 01字符串、1701非素数个数
  • spring-cloud-stream学习
  • elasticdump备份恢复
  • vue3实现JSON格式化和JSONPath提取功能
  • 10、面向对象技术★★★★★30‘
  • 移动端巡检点检,让设备管理更便捷高效
  • 当数控编程“联姻”AI:制造工厂的“智能大脑”如何炼成?
  • .NET NativeAOT 指南
  • CGO中引入 <cstddef> <vector> fatal error: cstddef: No such file or directory 失败的原因
  • Llama:开源的急先锋
  • 基于springboot+vue的医院门诊管理系统
  • 南审计院考研分享会 经验总结
  • Android多媒体——媒体start流程分析(十三)
  • PinkWallet如何打通数字资产与传统金融的最后一公里
  • Vue百日学习计划Day1-3天详细计划-Gemini版
  • 计算机组成与体系结构:缓存设计概述(Cache Design Overview)