با استفاده از iteratorها و توابع موجود در ، یک تابع در C++ بنویسید که یک std::vector از موقعیتهای یکبعدی را گرفته و میانگین متحرک با پنجرهٔ اندازهٔ 3 (هر عنصر با خودش و همسایهٔ چپ و راست) را با استفاده از std::next و std::prev محاسبه و یک وکتور جدید خروجی دهد.
5.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 03:03 0.0
برای حل، از #include بهعلاوه و استفاده کنید؛ با گرفتن iterator به هر عنصر، با std::prev و std::next همسایهها را دسترسیپذیر کنید و میانگین (با توجه به مرزها برای اولین و آخرین عنصر) را حساب کرده و در وکتور نتیجه قرار دهید. این تکنیک در بازیسازی برای نرمسازی مسیرها یا در محاسبات عددی برای فیلتر کردن نویز مفید است — دقت کنید که از بررسی مرزها و جلوگیری از خارج شدن از محدوده هنگام استفاده از iteratorها استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
استفاده از iteratorها با std::prev و std::next برای دسترسی به همسایهها در یک std::vector راهی کارآمد برای پیادهسازی میانگین متحرک با پنجرهٔ ۳ است. برای مرزها باید از بررسی معتبر بودن iterators و جلوگیری از خروج از محدوده استفاده کرد، مثلاً با شرطهایی که آغاز یا پایان بازه را در نظر بگیرند. بههر عنصر میتوانید با توجه به وجود یا نبود همجواران چپ و راست، میانگین را با تعداد عناصر معتبر محاسبه کنید تا از ناپایداری مقادیر در ابتدای و انتهای آرایه جلوگیری شود. این روش با وضوح کد و حفظ کارایی، در بازیسازی برای صافسازی مسیرها یا فیلترینگ نویز مفید است.
گزارش