一种方便处理负数下标数组的方法

来源:互联网 发布:linux route add 网关 编辑:程序博客网 时间:2024/06/04 23:44

经常遇到一些题目, 构造出来的一个数组下标为[-maxn, maxn], 这时候我们一般会给这个数字加上一个maxn, 让下标变成[0, maxn*2], 但写起来非常不方便
更方便的方法, 用一个宏隐藏了上面的+maxn

# include <bits/stdc++.h>using namespace std;int unused[1000005];# define a (unused + 500000)int x[100005][200];# define dp (x+50000)int main(void){    a[-1] = -1;    a[0] = 0;    a[1] = 1;    cout << a[-1] << ' ' << a[0] << ' ' << a[1] << '\n';    dp[-50000][0] = 1234;    cout << dp[-50000][0] << endl;    return 0;}
原创粉丝点击