编译器链表 c++
2021/10/16 14:09:34
本文主要是介绍编译器链表 c++,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
#include<iostream> using namespace std; //简单的编译器相加 template<typename T> struct addfunc { template<T a,T b> struct add { static constexpr T sum = a + b; }; }; //链表结构 template<typename T,T ...list> struct List {}; //打印链表 template<typename List> struct Print{}; template<typename T,T head,T ...datas> struct Print<List<T, head,datas...>> { static void print() { cout << head << endl; Print<List<T, datas...>>::print(); } }; template<typename T,T tail> struct Print<List<T, tail>> { static void print() { cout << tail << endl; } }; template<typename T,T val,typename List> struct PushHead{}; template<typename T,T val,T...datas> struct PushHead<T, val, List<T, datas...>> { using value = List<T, val, datas...>; }; template<typename T, T val, typename List> struct PushTail {}; template<typename T, T val, T...datas> struct PushTail<T, val, List<T, datas...>> { using value = List<T, datas...,val>; }; template<typename List> struct PopHead {}; template<typename T,T head,T ...tails> struct PopHead < List<T, head, tails...>>{ using value = List<T, tails...>; }; //tail 的实现就不想写了,思路,reverse一下PopHead再reverse回去,毕竟可变参数不支持放在前面 template<typename List> struct PopTail { using value = List; }; int main() { Print<PopTail<List<int,1, 2, 3>>::value>::print(); }
这篇关于编译器链表 c++的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-11国产医疗级心电ECG采集处理模块
- 2025-01-10Rakuten 乐天积分系统从 Cassandra 到 TiDB 的选型与实战
- 2025-01-09CMS内容管理系统是什么?如何选择适合你的平台?
- 2025-01-08CCPM如何缩短项目周期并降低风险?
- 2025-01-08Omnivore 替代品 Readeck 安装与使用教程
- 2025-01-07Cursor 收费太贵?3分钟教你接入超低价 DeepSeek-V3,代码质量逼近 Claude 3.5
- 2025-01-06PingCAP 连续两年入选 Gartner 云数据库管理系统魔力象限“荣誉提及”
- 2025-01-05Easysearch 可搜索快照功能,看这篇就够了
- 2025-01-04BOT+EPC模式在基础设施项目中的应用与优势
- 2025-01-03用LangChain构建会检索和搜索的智能聊天机器人指南