یک برنامهٔ C++ بنویسید که یک std::set از شناسه‌های اشیاء (مثلاً شناسهٔ بازیکنان در یک بازی یا شناسهٔ تسک‌ها در یک سیستم) را گرفته و با استفاده از std::set::erase اعضای مشخصی را حذف کرده و مجموعهٔ نهایی را چاپ کند.

1.0 بازدید آخرین ویرایش در 223 روز قبل ساعت 01:04

0.0

از هدر و استفاده کنید. می‌توانید با erase(value) یک مقدار مشخص را حذف کنید (این متد تعداد حذف‌شده‌ها را برمی‌گرداند) یا هنگام حذف در حلقه از erase(iterator) استفاده کنید تا عنصر جاری را حذف کرده و به عنصر بعدی برسید — در C++11 به بعد erase(iterator) یک iterator به عنصر بعدی برمی‌گرداند، در غیر این صورت باید iterator را قبلاً ++ کنید. این الگو برای حذف بازیکنان کشته‌شده در بازی یا آزادسازی شناسه‌های تسک در برنامه‌های سیستمی مفید است؛ هنگام حذف چند عنصر بر اساس شرط، از حلقه با iterator و بازگشت iterator از erase برای جلوگیری از خراب‌شدن iterator استفاده کنید.

توسط پژوهشگر در 223 روز قبل ساعت 01:04
دسته بندی ها: C Plus Plus C Plus Plus for beginner
nima در 223 روز قبل ساعت 14:46

نکتهٔ مهم: هنگام حذف چند عنصر از std::set از erase(iterator) استفاده کنید تا مقدار بازگشتی به عنصر بعدی برسد و از خرابی یا به‌هم‌ریختگیِ ایترِیتر جلوگیری شود. یا اگر از erase(value) استفاده کنید، تنها یکبار آن مقدار حذف می‌شود و بازگشت تعداد حذف‌شده است. در حذف شرطی، حلقه را با استفاده از بازگشت ایترِیتر پیگیری کنید تا ایمن بمانید. همچنین هر erase در std::set هزینهٔ O(log n) دارد و حذفِ زیادی می‌تواند زمان اجرا را افزایش دهد.

گزارش

1 پاسخ

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

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