C/C++的宏: 宏是一种替换机制,能把一段代码设置一个名字,在后面用名字直接就替换成了代码 比如#define PI 3.14 在后面使用PI,就会替换成3.14 除了变量外,还可以定义一句或一段代码, 比如#define en cout<<endl 在后面使用en,替换成cout<<endl,即快速换行 还可以定义应该类似函数的形式, 比如#define max(a,b) ((a) > (b) ? (a) : (b)) max(a,b) 替换成后面的表达式,表达式的结果是a,b中较大的一个数, 这样max(a,b)能直接替换成a或者b了 但是名字不能有空格,比如#define for in() cout<<"1" 只会识别for作为名字,相当于后面使用for,替换成了in() cout<<"1",明显不对了! 如果提前定义了宏,对于代码的编写也会变得简单了起来 我已经写好了常用的简化宏定义代码: 后面的代码缺失了宏定义的代码,想要宏定义代码就评论:宏定义的使用,代码的极简之路 我会直接私信发送我的宏定义代码啦! #include<iostream> #include<stack> #include <vector> #include<string> #include<algorithm> #include<unordered_map> #include <climits> #include<queue> #include<unordered_set> #include<cctype> #include <sstream> #include<set> #include<cmath> using namespace std; #define maxsize 100 //宏定义在这里 typedef struct ListNode{ int val; ListNode* next; ListNode(int val):val(val),next(null){} }*LinkList; typedef struct TreeNode{ int val; TreeNode* left; TreeNode* right; TreeNode(int val):val(val),left(null),right(null){} }; void travel(tr* T){ if(T){ cout<<T->val<<" "; travel(T->right); travel(T->left); } } int main(){ forc(1,10){ cout<<"1"<<" "; } en; fori(i,1,10){ forj(j,1,15,2){ cout<<i<<" "<<j; en; } en; } en; vt<int> f={1,2,3,4}; fora(f){ cout<<a<<" "; } en; vti ff={1,2,3,4}; vvti fff={{1,2},{4,5},{8,1,44}}; fora(fff){ fora(a){ cout<<a<<" "; } en; } en; vti k={6,2,8,14,3,1}; sort(k.beg,k.ends); fora(k){ cout<<a<<" "; } en; vvt<double> d={{1.3,2.5,0.3},{-1,-4.3,9.99},{0.8,100.999999,23}}; sort(d.beg,d.ends); fora(d){ fora(a){ cout<<a<<" "; } en; } en; vvvt<int> s={{{1,2},{4,5}},{{7,45},{90}},{{0}}}; fora(s){ fora(a){ fora(a){ cout<<a<<" "; } en; } } en; S<int> a; a.push(1); a.push(2); cout<<a.top(); en; Q<int> q; q.push(1); q.push(2); cout<<q.front(); en; str p="hello,world"; cout<<p; en; umap<int,int> um; um[1]=2; um[9]=12; um[88]=0; fora(um){ cout<<"键:"<<a.first<<"值:"<<a.second; en; } en; uset<int> us={1,78,100,23,16}; fora(us){ cout<<a<<" "; } en; vti l={3,4}; l.puk(7); l.puk(5); cout<<l.back(); en; l.pok(); cout<<l.back(); en; if(iss('2')){ cout<<"true"; } en; if(isz('z')){ cout<<"true"; } en; if(issz('#')){ cout<<"true"; } else{ cout<<"false"; } en; lk m=new ln(1); lk n=new ln(2); lk gh=new ln(3); m->next=n; n->next=gh; lk qq=m; while(qq){ cout<<qq->val<<" "; qq=qq->next; } en; tr* t1=new tr(1); tr* t2=new tr(2); tr* t3=new tr(3); tr* t4=new tr(4); t2->left=new tr(5); t3->left=new tr(6); t1->left=t2; t1->right=t3; t2->right=t4; travel(t1); en; return 0; }
宏定义的使用,代码的极简之路
于 2024-05-11 19:47:02 首次发布