宏定义的使用,代码的极简之路

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;
}

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值