با استفاده از کتابخانه unordered_set در C++، برنامه‌ای بنویس که لیستی از نام آیتم‌های جمع‌آوری‌شده در یک بازی را دریافت کند، آیتم‌های تکراری را حذف کرده و تعداد آیتم‌های یکتا را چاپ کند.

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

0.0

ورودی: ابتدا عدد n (تعداد آیتم‌ها) و سپس n رشته که نام آیتم‌ها را می‌دهند؛ خروجی: تعداد آیتم‌های یکتا و (اختیاری) خود آیتم‌های یکتا. برای حل، از کلاس unordered_set برای ذخیره‌ی رشته‌ها استفاده کنید و هر رشته را در مجموعه وارد کنید؛ در پایان اندازه مجموعه را چاپ کنید. در C++ کافی است هدر unordered_set را include کنید و از عملیات insert و size استفاده کنید. نکات: زمان درج و جستجو به‌طور متوسط O(1) است؛ اگر ترتیب ورود مهم است می‌توانید هم‌زمان در یک بردار نیز ذخیره کنید و قبل از افزودن در بردار، با unordered_set چک کنید؛ برای کارایی بهتر با حجم بزرگ از reserve یا rehash استفاده کنید.

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

نکتهٔ مهم این است که unordered_set با ذخیرهٔ رشته‌ها، به‌طور خودکار آیتم‌های تکراری را حذف می‌کند و اندازهٔ مجموعه، تعداد آیتم‌های یکتا را نمایش می‌دهد. برای کارایی بهتر در داده‌های بزرگ، قبل از ورود داده‌ها reserve(n) را روی مجموعه انجام دهید تا نیاز به بازنشانی کمتر شود. اگر حفظ ترتیب ورود مهم است، می‌توانید هم‌زمان از یک بردار استفاده کنید و فقط آیتم‌های جدید را به بردار اضافه کنید. در پایان استفاده از size() ساده است و نتیجه را چاپ می‌کند.

گزارش

1 پاسخ

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

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