سلام در تابع زیر چرا متیر از نوع const تعریف شده و این & contour و & center یعنی چی؟
vector<float> sample(const vector<Point>& contour, const Point& center){ . . . }
تفاوت refrence با اشاره گر و تفاوت انواع const ها با هم را مطالعه کنید و سپس call by refrence در مقابل call by value
این 3 پست اطلاعات خوبی راجع به refrence به شما میده.
وقتی قصد دارید یک struct را انتقال بدید به جای انتقال کل اطلاعات فقط کافیه آدرس خانه حافظه را انتقال بدید از طریق refrence از این طریق struct مورد نظر در داخل تابع قابل تغییر هستش و زمانیکه تابع شما نباید اطلاعات را تغییر بده بایستی از کلمه کلید const استفاده کنید.