یک برنامه 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) دارد زیرا عناصر بعدی جابجا می‌شوند.

توسط پژوهشگر در 221 روز قبل ساعت 01:29
دسته بندی ها: C Plus Plus C Plus Plus for beginner
reyhaneh در 221 روز قبل ساعت 13:06

نکته مفید این است که برای نگهداری موقعیت‌های دشمن می‌توانید از std::vector<std::pair<int,int>> استفاده کنید و با insert در اندیس دلخواه وارد کنید. قبل از درج بررسی کنید که 0 <= index <= vec.size() باشد تا از out_of_range جلوگیری شود. توجه کنید که درج در وسط بردار زمان‌های O(n) دارد چون عناصر پس از محل درج جابهجا می‌شوند؛ اگر اندازه زیادی دارید، از vec.reserve(...) استفاده کنید تا جابه‌جایی‌های اضافی کاهش یابد. برای ساخت سریع زوج‌ها می‌توانید از std::make_pair استفاده کنید یا از emplace برای ساخت در محل درج استفاده کنید.

گزارش

1 پاسخ

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

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