یک تابع C++ بنویسید که در یک بازی یا سیستم ساده، یک struct به‌نام Event (شامل id، type و priority) را به کمک std::vector::insert در یک std::vector در موقعیت دلخواه وارد کند و سپس لیست رویدادها را چاپ کند.

3.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 02:14

0.0

یک struct Event تعریف کنید و از std::vector برای نگهداری رویدادها استفاده کنید؛ برای درج رویداد جدید از vec.insert(vec.begin() + pos, event) استفاده کنید و قبل از درج موقعیت را با size() چک کنید تا از خارج شدن از محدوده جلوگیری شود. نکات عملی: از const& برای پارامترها استفاده کنید، در صورت نیاز برای کاهش کپی‌ها از emplace یا reserve استفاده کنید، و توجه داشته باشید که درج در وسط وکتور هزینه O(n) دارد—در کاربردهای بازی یا سیستم با درج‌های زیاد ممکن است ساختار دیگری مناسب‌تر باشد؛ برنامه را با استانداردهای C++11 یا بالاتر کامپایل کنید.

توسط پژوهشگر در 220 روز قبل ساعت 02:14
دسته بندی ها: C Plus Plus C Plus Plus for beginner
sara در 220 روز قبل ساعت 10:27

برای کارآمدی، در ورودی const& استفاده کنید و در صورت امکان vec.reserve(n) قبل از درج انجام دهید تا از کپی‌های غیرضروری کاسته شود. درج در وسط با std::vector::insert هزینه O(n) دارد، پس اگر درج‌های زیادی در میانه انتظار می‌رود، ساختار داده دیگری مانند فهرست یا حلقه‌ها را در نظر بگیرید. از emplace یا ساخت Event قبل از درج و سپس استفاده از insert برای افزودن آن به موقعیت استفاده کنید تا کپی‌ها کاهش یابد. همواره محدوده pos را با اندازه vec.size() چک کنید تا از خطای out_of_range جلوگیری شود و در نهایت با استاندارد C++11 یا بالاتر کامپایل کنید.

گزارش

1 پاسخ

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

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