یک برنامه C++ بنویسید که لیستی از موقعیتهای دشمنان بهصورت زوج مختصات صحیح (x,y) را در std::vector نگهداری کند و با استفاده از std::vector::insert یک دشمن جدید را در یک اندیس دلخواه وارد کند و سپس لیست را چاپ کند.
1.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:29 0.0
در این مسئله از زبان C++ و هدر استفاده کنید؛ موقعیتها را میتوان بهصورت std::pair یا یک ساختار ساده ذخیره کرد. برای درج عنصر جدید از vec.insert(vec.begin() + index, value) بهره ببرید و قبل از آن مقدار index را با vec.size() مقایسه کنید تا از خارج از محدوده بودن جلوگیری کنید. در خروجی، پس از درج، تمام عناصر بردار را با حلقه چاپ کنید. نکات: استفاده از std::make_pair یا C++11 emplace برای ساخت سریعتر زوجها، و توجه داشته باشید که insert پیچیدگی زمانی O(n) دارد زیرا عناصر بعدی جابجا میشوند.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکته مفید این است که برای نگهداری موقعیتهای دشمن میتوانید از std::vector<std::pair<int,int>> استفاده کنید و با insert در اندیس دلخواه وارد کنید. قبل از درج بررسی کنید که 0 <= index <= vec.size() باشد تا از out_of_range جلوگیری شود. توجه کنید که درج در وسط بردار زمانهای O(n) دارد چون عناصر پس از محل درج جابهجا میشوند؛ اگر اندازه زیادی دارید، از vec.reserve(...) استفاده کنید تا جابهجاییهای اضافی کاهش یابد. برای ساخت سریع زوجها میتوانید از std::make_pair استفاده کنید یا از emplace برای ساخت در محل درج استفاده کنید.
گزارش