یک برنامه C++ بنویسید که با استفاده از هدر unordered_map موجودیتهای بازی (مثلاً دشمنان) را با شناسهٔ عددی و وضعیت زنده/مرده نگهداری کند و با دریافت شناسهٔ دشمن، از متد erase برای حذف آن و سپس چاپ تعداد دشمنان باقیمانده استفاده کند.
7.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:48 0.0
برای حل، از unordered_map یا unordered_map استفاده کنید و با include کردن هدر unordered_map مقادیر اولیه را وارد کنید؛ هنگام حذف از متد erase(key) استفاده کنید که تعداد حذفشده (۰ یا ۱) را برمیگرداند و برای نشاندادن تعداد باقیمانده از size() کانتینر بهره ببرید. نکات: قبل از حذف میتوانید با وجود کلید بررسی کنید، از نوعهای مناسب مانند size_t برای شمارش استفاده کنید و بدانید unordered_map برای بازیسازی و برنامهنویسی سیستمی دسترسی سریع (میانگین O(1)) به کلیدها فراهم میکند؛ هنگام پیمایش و حذف هم از erase با iterator استفاده کنید تا مشکلی پیش نیاید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکتهٔ کلیدی این است که از erase با کلید استفاده کنید تا مقدار بازگشتی نشان دهد چه تعداد دشمن حذف شده است (۰ یا ۱) و سپس با size() تعداد دشمنان باقیمانده را چاپ کنید. قبل از حذف میتوانید وجود کلید را با find یا contains بررسی کنید تا از حذف اشتباه جلوگیری شود و برای شمارش از نوع size_t استفاده کنید. در هنگام پیمایش و حذف از erase با iterator استفاده کنید تا بهراحتی iteratorها دچار مشکل نشوند. استفاده از unordered_map با دسترسی متوسط O(1) مناسب بازیسازی است و با reserve کردن ظرفیت میتوانید از هزینهٔ دوبارهسازی هش جلوگیری کنید.
گزارش