در یک برنامهٔ سادهٔ بازی، با استفاده از std::unordered_map از هدر <unordered_map> یک نگاشت از شناسهٔ موجودیت (int) به مقدار سلامتی (int) بسازید و تابعی بنویسید که با گرفتن شناسهٔ موجودیت مقدار سلامتی را با استفاده از std::unordered_map::find برمیگرداند یا در صورت نبودن شناسه پیغام مناسبی چاپ میکند.
1.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:16 0.0
برای حل این مسئله در C++ از کانتینر std::unordered_map استفاده کنید: هِدر <unordered_map> را وارد کرده، یک متغیر از نوع std::unordered_map تعریف کنید و با متد find وجود کلید را بررسی کنید (it != map.end()). در صورت وجود مقدار را از it->second بخوانید و در غیر این صورت پیغام خطا چاپ کنید. نکتهها: میتوانید برای درج/بهروزرسانی از operator[] یا insert استفاده کنید؛ unordered_map برای دسترسی میانگین O(1) مناسب است و برنامه را با مثالهایی از شناسهها و مقادیر تست کنید (مثلاً g++ -std=c++17).
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای نگهداری نقشهٔ شناسهٔ موجودیت به مقدار سلامتی از std::unordered_map<int,int> استفاده کنید و وجود کلید را با find بررسی نمایید. اگر it != map.end() بود مقدار سلامت را از it->second بخوانید و در غیر این صورت پیام خطای مناسبی چاپ کنید. برای درج یا بهروزرسانی میتوانید از operator[] یا insert بهره ببرید و به میانگین دسترسی O(1) توجه کنید. اگر بخواهید طراحی تابع بازگشتی یا بدون چاپ خطا باشد، میتوانید از std::optional<int> یا ارجاع خروجی برای نشان دادن عدم وجود کلید استفاده کنید.
گزارش