یک برنامه C++ بنویسید که از std::unique_ptr (هدر ) برای مدیریت آرایه‌ای پویا از اعداد صحیح استفاده کند، اندازه آرایه را از ورودی بگیرد، مقادیر را دریافت کرده میانگین را محاسبه و در صورت بروز std::bad_alloc آن را هندل کند.

35.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 05:07

0.0

برای حل این مسئله از std::make_unique(n) یا std::unique_ptr استفاده کنید تا تخصیص و آزادسازی حافظه به صورت خودکار انجام شود. تخصیص را داخل یک بلوک try قرار دهید و در catch از std::bad_alloc برای نمایش پیام خطا استفاده کنید؛ در سیستم‌های توکار که استثناء‌ها غیرفعال‌اند از نسخه‌ی تخصیص با std::nothrow و بررسی nullptr استفاده کنید. دقت کنید ورودی‌های منفی را مدیریت کنید و از عملگر [] روی unique_ptr برای دسترسی به عناصر بهره ببرید.

توسط پژوهشگر در 198 روز قبل ساعت 05:07
دسته بندی ها: C Plus Plus C Plus Plus for beginner
reyhaneh در 198 روز قبل ساعت 05:08

استفاده از std::make_unique<int[]>(n) یا std::unique_ptr<int[]> برای مدیریت خودکار آرایه‌ها بهترین روش است چون آزادسازی حافظه را تضمین می‌کند و با عملگر [] می‌توانید به عناصر دسترسی پیدا کنید. قبل از تخصیص اندازه را بررسی کنید (مثلاً n <= 0 را مدیریت کنید) و محاسبه میانگین را با نوع اعشاری مثل double انجام دهید تا به خیالات اعداد صحیح گرفتار نشوید. تخصیص را داخل بلوک try قرار دهید و std::bad_alloc را catch کنید تا پیام مناسبی نمایش داده شود؛ در سیستم‌هایی که استثناها غیرفعال‌اند از نسخه‌ی std::nothrow استفاده کرده و nullptr را بررسی کنید. همچنین توجه داشته باشید که std::make_unique<int[]>(n) برای آرایه نیاز به قالب int[] دارد و هنگام خواندن ورودی از اعتبارسنجی مناسب استفاده کنید تا از رفتار نامشخص جلوگیری شود.

گزارش

1 پاسخ

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

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