Mảng chỉ số âm trong C,C++

Khi cài đặt quy hoạch động, hay đếm phân phối, ... chúng ta rất cần sử dụng mảng có chỉ số âm. Nhưng C, C++ lại quy định mảng bắt đầu từ chỉ số 0.
Để khắc phục hạn chế này, mình xin đưa ra một ý tưởng như sau:

Ta viết một macro, để "tịnh tiến" chỉ số của mạng, ví dụ:

#define d(i) d[i+100]
int d[200];
Tương đương với d:array[-100..100] of longint; trong Pascal
Khi gọi phần tử thứ i của mạng, ta sử dụng d(i) thay vì d[i]


Đăng bởi Unknown lúc lúc tháng 12 09, 2013 0 bình luận
Tags:

Không có nhận xét nào:

Đăng nhận xét

Copyright © 2018. NguyenQuangVinh.net, Edit by Daotaotinhoc.vn