یک برنامهٔ C++ بنویسید که ابتدا عدد n را میخواند و سپس n عدد صحیح را گرفته و تنها شناسههای منحصربهفرد را به ترتیب اولین ظاهر شدن در خروجی چاپ کند (برای تشخیص تکراریها از استفاده کنید).
1.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:20 0.0
برای حل مسئله، تعداد n و سپس n عدد را با iostream بخوانید، از یک unordered_set برای تشخیص اینکه یک شناسه قبلاً دیده شدهاست استفاده کنید و از یک vector برای نگهداری ترتیب اولین ظاهر شدن مقادیر یکتا. هنگام خواندن هر عدد، اگر در unordered_set پیدا نشد آن را در set وارد و به وکتور اضافه کنید؛ در پایان وکتور را چاپ کنید. نکات: هدر را اضافه کنید، میتوانید با reserve(n) از بازهبندیهای اضافه جلوگیری کنید و برای بررسی وجود از count یا مقدار بازگشتی insert (pair) استفاده نمایید؛ این روش در بازیسازی یا برنامهنویسی سیستم برای پیگیری شناسههای موجود یا جلوگیری از تخصیصهای تکراری مفید است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای کارایی بهتر IO را با فعالسازی ios::sync_with_stdio(false); cin.tie(nullptr) غیر فعال کنید و اندازهٔ اولیهٔ unordered_set و vector را با reserve(n) آماده کنید. هنگام خواندن هر عدد از تابع insert استفاده کنید و نتیجهٔ آن را بررسی کنید؛ اگر inserted=true بود، عدد را به وکتور اضافه کنید. این روش با استفاده از مقدار بازگشتی insert هم تکراریها را سریع تشخیص میدهد و هم ترتیب اولین ظاهر شدن را حفظ میکند. در پایان مقادیر vector را بهصورت یک خط جداشده با فاصله چاپ کنید.
گزارش