codeblocks快捷键——高效编程从编译器开始

本文介绍了一系列提高编程效率的快捷键,如Ctrl+O、Alt+N等,以及多种编程代码模板,涵盖注释、缩写、重构等功能,帮助程序员快速编写和优化代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基础:

Ctrl+Z,X,C,V,S,A,Ctrl+Shfit+Z:略

F9:Build+Run
F8:Debug

不广为人知的比较牛的快捷键:

Ctrl+O:打开项目
Alt+F5,F6:切换(上下)并激活Project
Ctrl+Alt+C:注释选中代码
Ctrl+Alt+X:取消注释选中代码

Alt+N

重构代码,光标停在一个变量或者符号上,然后按Alt+N,会自动检测全局中相同的变量,并替换成新的。

例如,define ll long longll改成LLll ans会变为LL ans

注意,V.end改为V.begin后,只有V.end会变为V.begin

需要编译后才能使用。

缩写

类似于模板功能,在settings-Editor-Abbreviation中设置。

新建一个并自己命名,例如这里的begin,敲上自己的模板。$NOW L是自带的宏,表示当前时间。当然可以自己写不确定的变量,例如$(Author),打开的时候会弹出提示框,让你自己输入变量。

使用方法:敲名字begin,再按Ctrl+J即可。

在这里插入图片描述

自己的几个模板

begin

/* 
 *  Author : Jk_Chen
 *    Date : $NOW_L
 */
#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define rep(i,a,b) for(int i=(int)(a);i<=(int)(b);i++)
#define per(i,a,b) for(int i=(int)(a);i>=(int)(b);i--)
#define mmm(a,b) memset(a,b,sizeof(a))
#define pb push_back
#define pill pair<int, int>
#define fi first
#define se second
void test(){cerr<<"\n";}
template<typename T,typename... Args>void test(T x,Args... args){cerr<<"> "<<x<<" ";test(args...);}
const LL mod=1e9+7;
const int maxn=1e5+9;
const int inf=0x3f3f3f3f;
LL rd(){ LL ans=0; char last=' ',ch=getchar();
    while(!(ch>='0' && ch<='9'))last=ch,ch=getchar();
    while(ch>='0' && ch<='9')ans=ans*10+ch-'0',ch=getchar();
    if(last=='-')ans=-ans; return ans;
}
#define rd rd()
/*_________________________________________________________begin*/

int main(){
    //ios::sync_with_stdio(false);
    //cin.tie(0);
    |
    return 0;
}

/*_________________________________________________________end*/

edge

#define rep_e(i,p,u) for(int i=head[p],u=to[i];i;i=nex[i],u=to[i])
int head[maxn],to[maxn<<1],nex[maxn<<1],now;
void add(int a,int b){
    nex[++now]=head[a];head[a]=now;to[now]=b;
}
void init_edge(){
    memset(head,0,sizeof head);
    now=0;
}|
/*_________________________________________________________edge*/

Pow

LL Pow(LL a,LL b,LL mod=mod){
    if(a>=mod)a%=mod;
    LL res=1;
    while(b>0){
        if(b&1)res=res*a%mod;
        a=a*a%mod;
        b>>=1;
    }
    return res;
}
LL inv(LL a){
    return Pow(a,mod-2);
}
/*_________________________________________________________Pow*/

unique

struct Uni{
    int num;
    int tmp[maxn];|
    int operator[](int idx)const{
        return tmp[idx];
    }
    int& operator[](int idx){
        return tmp[idx];
    }
    void push(int x){
        tmp[++num]=x;
    }
    void init(){
        sort(tmp+1,tmp+1+num);
        num=unique(tmp+1,tmp+1+num)-tmp-1;
    }
    int idx(int val){
        return lower_bound(tmp+1,tmp+1+num,val)-tmp;
    }
}U;
/*_________________________________________________________unique*/

matrix

const int SIZE=5|;
struct matrix{
    LL mat[SIZE][SIZE];
    matrix(){memset(mat,0,sizeof mat);}
    matrix operator * (const matrix & x)const{
        matrix ans;
        for(int i=0;i<SIZE;i++){
            for(int j=0;j<SIZE;j++){
                for(int k=0;k<SIZE;k++){
                    ans.mat[i][j]=(ans.mat[i][j]+mat[i][k]*x.mat[k][j])%mod;
                }
            }
        }
        return ans;
    }
} ;
matrix Pow(matrix a,LL b){
    matrix ans;
    for(int i=0;i<SIZE;i++)ans.mat[i][i]=1;
    while(b){
        if(b&1)ans=ans*a;
        a=a*a;
        b>>=1;
    }
    return ans;
}
/*_________________________________________________________matrix*/

tree

|#define ls (rt<<1)
#define rs (rt<<1|1)
#define mid (l+r>>1)
#define root int rt,int l,int r 
#define lson ls,l,mid
#define rson rs,mid+1,r

Hash

namespace Hash{
    const int Mod=1e6+9;
    int head[Mod],nex[Mod],now;
    struct node{
        int val;
        int cnt;
    } val[Mod];
    void init(){
        now=0;
        mmm(head,0);
    }
    node* Find(int v){
        int key=(v%Mod+Mod)%Mod;
        for(int i=head[key];i;i=nex[i]){
            if(val[i].val==v)
                return &val[i];
        }
        return nullptr;
    }
    void Insert(int v){
        node* P=Find(v);
        if(P==nullptr){
            int key=(v%Mod+Mod)%Mod;
            nex[++now]=head[key];head[key]=now;val[now].val=v,val[now].cnt=1;
        }
        else{
            P->cnt++;
        }
    }
}|
/*_________________________________________________________Hash*/

fa

int fa[maxn];
int siz_fa[maxn];
void init_fa(int n){
    rep(i,0,n)fa[i]=i,siz_fa[i]=1;
}
int fin(int p){
    return fa[p]==p?p:fa[p]=fin(fa[p]);
}
int link(int u,int v){
    int f1=fin(u),f2=fin(v);
    if(f1!=f2){
        if(siz_fa[f1]>siz_fa[f2])swap(f1,f2);
        fa[f1]=f2;
        siz_fa[f2]+=siz_fa[f1];
    }
}|
/*_________________________________________________________fa*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值