تفاوت set با vector در c++ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

تفاوت set با vector در c++

+2 امتیاز
سلام بر همگی

set با Vector چه فرقی می کنه ؟ مگه نمیشه کارایی که با set میشه انجام داد رو با vector هم انجام داد ؟؟

میشه دلایل استفاده از set رو بگین ؟
سوال شده بهمن 27, 1392  بوسیله ی ایرانی (امتیاز 38)   1 4 6
دوباره تگ گذاری شد فروردین 20, 1393 بوسیله ی BlueBlade

2 پاسخ

+3 امتیاز
 
بهترین پاسخ
set معمولا از ساختار های binary search tree برای پیاده سازیش استفاده شده به همین دلیل جست و جو و اضافه کردن عنصر هر 2 تاشون O(Logn هستش ولی برای vector خطیه یعنی set توی این 2 مورد از vector سریع تره

در عوض خوندن عنصر  از وکتور O(1 هستش در حالی که برای set این عملیات  O(logn هسش در نتیجه iterate کردن داخل vector سریع تره

ضمنا به خاطر ساختار set زمانی که عناصر داخلش قرار میگیرن به ترتیب جایگذاری میشن و عناصر تکراری هم اضافه نمیشن یعنی میتونین عناصر set رو از کوچیک به بزرگ پیمایش کنین .
پاسخ داده شده فروردین 20, 1393 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
انتخاب شد فروردین 20, 1393 بوسیله ی Ali Rahbar
+2 امتیاز
کاراییشون در ظاهر به یک شکله ولی set مقادیر مشابه رو اضافه نمیکنه و تمام مقادیر داخلش متفاوته ولی وکتور میتونه مقادیر مشابه داشته باشه.یعنی موقع دریافت مقدار برای set بررسی میشه که اگر وجود داره اضافه نشه.
پاسخ داده شده اسفند 27, 1392 بوسیله ی Elyas74 (امتیاز 1,144)   6 14 27
...