در یک برنامهٔ سادهٔ بازی، با استفاده از 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).

توسط پژوهشگر در 221 روز قبل ساعت 01:16
دسته بندی ها: C Plus Plus C Plus Plus for beginner
arash در 221 روز قبل ساعت 13:55

برای نگهداری نقشهٔ شناسهٔ موجودیت به مقدار سلامتی از std::unordered_map<int,int> استفاده کنید و وجود کلید را با find بررسی نمایید. اگر it != map.end() بود مقدار سلامت را از it->second بخوانید و در غیر این صورت پیام خطای مناسبی چاپ کنید. برای درج یا به‌روزرسانی می‌توانید از operator[] یا insert بهره ببرید و به میانگین دسترسی O(1) توجه کنید. اگر بخواهید طراحی تابع بازگشتی یا بدون چاپ خطا باشد، می‌توانید از std::optional<int> یا ارجاع خروجی برای نشان دادن عدم وجود کلید استفاده کنید.

گزارش

1 پاسخ

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

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