با استفاده از std::set و تابع end() یک تابع در C++ بنویس که در یک بازی سطحبندیشده، بالاترین امتیاز بازیکن را از مجموعه امتیازات استخراج و چاپ کند.
1.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:42 0.0
در C++ از هدر برای نگهداری مجموعهای مرتب از امتیازات استفاده کنید و با بررسی خالی بودن مجموعه از dereference کردن end() جلوگیری کنید. برای دسترسی به آخرین عنصر (بیشترین امتیاز) از std::prev(s.end()) یا --s.end() استفاده کنید؛ هدر برای std::prev قابل استفاده است. نکات: همیشه اول بررسی کنید که set خالی نباشد، از const_iterator برای خواندن استفاده کنید و توجه داشته باشید که end() اشارهگرِ یکی پس از آخرین عنصر است و نباید مستقیم آن را دِرفِرنس کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
قبل از استخراج بالاترین امتیاز از یک std::set، حتما چک کنید که مجموعه خالی نیست (s.empty()). end() یک اشارهگر پس از آخرین عنصر است و نباید به آن دسترسی مستقیم کرد؛ برای خواندن آخرین مقدار از std::prev(s.end()) یا با --s.end() استفاده کنید و از const_iterator برای خواندن استفاده کنید. توجه کنید که std::prev در <iterator> قرار دارد، پس این هدر را اضافه کنید. این کار تضمین میکند که به درستی آخرین امتیاز را چاپ کنید حتی وقتی مجموعه دارای یک یا چند المان است.
گزارش