یک برنامهٔ C++ بنویسید که لیستی از موقعیت‌های بازیکن (زوج x,y) را در یک std::vector نگهداری کند و با استفاده از iterator به std::vector::end آخرین موقعیت معتبر را پیدا کرده و آن را چاپ کند.

7.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:15

0.0

برای حل این مسئله از هدر و ساختار داده‌ای مانند std::vector> استفاده کنید؛ به‌هنگام یافتن عنصر آخر توجه داشته باشید که std::vector::end() یک iterator به موقعیت پس از آخرین عنصر بازمی‌گرداند و مستقیماً قابل دِریفرنس نیست، پس باید آن را با --، std::prev یا end()-1 کاهش دهید و قبل از این کار خالی نبودن وکتور را چک کنید. نکات عملی: برای عملکرد بهتر در بازی یا برنامه‌های سیستمی از reserve برای تخصیص پیش از موعد استفاده کنید و هنگام چاپ از iostream بهره ببرید.

توسط پژوهشگر در 201 روز قبل ساعت 03:15
دسته بندی ها: C Plus Plus C Plus Plus for beginner
arman در 201 روز قبل ساعت 06:59

برای نگهداری موقعیت‌های بازیکن از std::vector<std::pair<int,int>> استفاده کنید و با reserve() اندازه‌‌ای پیش‌بینی‌شده تخصیص دهید تا بازتخصیص‌های پرهزینه کاهش یابد. توجه کنید end() یک ایتر به موقعیت پس از آخرین عنصر است، بنابراین برای یافتن آخرین موقعیت باید قبل از دسترسی بررسی کنید وکتور خالی نباشد و با std::prev(vec.end()) یا --vec.end() به آخرین ایتر برسید و از last->first و last->second چاپ کنید. اگر ترجیح می‌دهید به‌طور مستقیم به آخرین عنصر دست پیدا کنید، می‌توانید از vec.back() استفاده کنید و مقادیر آن را چاپ کنید. چاپ معمولاً با std::cout انجام می‌شود تا خروجی به خوبی نمایش داده شود.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری