Я недавно написал простой макрос, потому что я так устал набирать одно и то же для каждого вектора, который мне нужно было пройти по циклу:
#define FORVEC(a,b) for(int b=0;b<a.size();b++)
, чтобы я мог сделать что-то вроде
vector<sometype> stuff
FORVEC(stuff,i)
{
stuff[i].dosomething();
}
Я стараюсь избегать использования макросов, так как однажды мне сказал более опытный программист избегать их, когда это возможно.Кроме того, мне просто любопытно, как это можно сделать с помощью функции (или чего бы то ни было), потому что это область, которую я хотел бы изучить.Не обязательно воссоздавать этот макрос обязательно, хотя это было бы хорошим началом, но кое-что, после его определения я мог бы сделать что-то вроде
mylooperfunction(param1,param2,param3)
{
//and now any code here would be run and looped in a way controlled by and defined in mylooperfunction
}