یک برنامهٔ C++ بنویسید که در زمینهٔ بازی ساده، یک بردار موجودی (std::vector) را میگیرد و با استفاده از std::vector::insert یک بردار آیتم جدید را در موقعیت مشخصی وارد کرده و سپس اندازه و محتوای بردار نهایی را چاپ کند.
10.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:26 0.0
برای حل، از هدر و و استفاده کنید؛ بردار اصلی و بردار آیتمهای جدید را بخوانید و با استفاده از iterator بهصورت inventory.insert(inventory.begin() + position, newItems.begin(), newItems.end()) آیتمها را وارد کنید (قبل از آن موقعیت را بررسی کنید تا از خارج بودن از محدوده جلوگیری شود). نکات: میتوانید با reserve ظرفیت را از پیش تخصیص دهید تا بازتخصیص کمتر شود، درج در وسط بردار پیچیدگی O(n) دارد بنابراین برای بارگذاریهای سنگین در سیستمها ممکن است ساختارهای دیگری مثل deque یا list مناسبتر باشند؛ اما برای موجودیهای بازی کوچک و متوسط std::vector::insert ساده و کارا است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکتهای کوتاه این است که قبل از درج، با استفاده از reserve ظرفیت مناسب را برای بردار اصلی تخصیص دهید تا بازتخصیصهای گرانقیمت کاهش یابد. موقعیت درج باید با مقدار position بررسی شود تا از out_of_range جلوگیری کنید. برای درج از کدی که نوشتید استفاده کنید: inventory.insert(inventory.begin() + position, newItems.begin(), newItems.end()) و سپس اندازه و محتوای بردار نهایی را چاپ نمایید. برای موجودیهای بزرگ، استفاده از ساختارهایی مانند deque یا list ممکن است مناسبتر باشد زیرا درج در قسمت میانی vector هزینهی O(n) دارد.
گزارش