advertise laitec sharif univercity
دانلود پروژه کامل مهندسی نرم افزار ، شرکت نرم افزاری

دانلود پروژه کامل مهندسی نرم افزار ، شرکت نرم افزاری

10000 تومان
دانلود پروژه مهندسی نرم افزار ، سیستم داروخانه

دانلود پروژه مهندسی نرم افزار ، سیستم داروخانه

10000 تومان
پروژه پایانی PHP وب سایت فروشگاه کامپیوتری

پروژه پایانی PHP وب سایت فروشگاه کامپیوتری

68000 تومان
دانلود سورس n وزیر با جست وجوی ممنوع در سی شارپ #C

دانلود سورس n وزیر با جست وجوی ممنوع در سی شارپ #C

10000 تومان
دانلود آپلود سنتر پیشرفته با PHP و Ajax

دانلود آپلود سنتر پیشرفته با PHP و Ajax

10000 تومان

کتابخانه قالب استاندارد STL در زبان سی پلاس پلاس ++C

کتابخانه قالب استانداردSLT از ویژگی های جدید ++C است که کلاس ها و توابع همه منظوره و قالب را ارائه میکند که بسیاری از الگوریتم ها و ساختمان داده های معروف و متداول را پیاده سازی میکنند.
کتابخانه قالب استاندارد STL در زبان سی پلاس پلاس ++C

کتابخانه قالب استاندارد STL  در زبان سی پلاس پلاس ++C

کتابخانه قالب استاندارد Standard Template  Library ، SLT یکی از ویژگی هایی است که اخیرا به زبان برنامه نویسی C++ اضافه شده است. افزودن STL به C++ تلاشی برای استانداردسازی آن بوده است.

STL، کلاس ها و توابع همه منظوره و قالب را ارائه میکند که بسیاری از الگوریتم ها و ساختمان داده های معروف و متداول را پیاده سازی میکنند. همچنین روال هایی را برای دستیابی به آنها ارائه مینماید. چون STL از کلاس های قالب درست شده است، الگوریتم ها و ساختمان داده های موجود در آنها، تقریبا برای تمام انواع داده ها قابل استفاده اند.

STL قطعه پیچیده ای از مهندسی نرم افزار است که از بسیاری از خواص پیشرفته  C++ استفاده میکند. برای درک و کاربرد STL باید فهم درستی از زبان C++ داشته باشید، از جمله اشاره گرها، مراجع و قالب ها. واقعیت این است که شیوه کاربرد قالب ها در STL بسیار پیچیده است.

 

مروری بر STL

گرچه STL یک کتابخانه بزرگ و پیچیده است، ولی اگر با چگونگی ساخت و اجزای تشکیل دهنده آن آشنا باشید به راحتی میتوانید با آن کار کنید.

هسته اصلی کتابخانه قالب استاندارد سه مولفه است : کانتینرها، الگوریتم ها و تکرارگرها. این مولفه ها در کنار یکدیگر کار میکنند تا به بسیاری از مشکلات برنامه نویسی پاسخ دهند.

► کانتینرها : کانتینرها اشیایی هستند که اشیای دیگر را نگهداری میکنند و دارای انواع مختلفی اند. بعنوان مثال کلاس vector یک آرایه پویا بنام deque تعریف میکند که یک صف دو طرفه را ایجاد میکند و list یک لیست پیوندی خطی را ایجاد مینماید. این کانتینر ها را ترتیبی می نامند. علاوه بر کانتینرهای اصلی، کانتینرهای دیگری به نام کانتینرهای وابسته نیز وجود دارند که قادرند براساس کلیدهایی عمل دستیابی را انجام دهند. هر کلاس کانتینر مجموعه ای از توابع را تعریف میکند که بر روی کانتینرها عمل میکنند. بعنوان مثال کانتینر لیست حاوی توابعی است که عمل درج، حذف و ادغام عناصر را انجام میدهند.

► الگوریتم ها : الگوریتم ها بر روی کانتینرها عمل میکنند. از طریق الگوریتم ها میتوان محتویات کانتینرها را دستکاری کرد. قابلیت های آنها شامل ارزش دهی، مرتب سازی، جستوجو، و جابه جایی محتویات کانتینرها است.

► تکرار کننده ها : تکرارکننده ها اشیایی هستند که اغلب آنها اشاره گرند. با استفاده از آنها میتوان محتویات کانتینرها را همانند آرایه ها پیمایش کرد. چند نوع تکرارکننده وجود دارند که عبارتنداز : Random Access, Bisirectional, Forward, Input, Output . با تکرارکننده ها مثل اشاره گرها برخورد میشود. عمل افزایش و کاهش بر روی آنها امکانپذیر است. STL از تکرارکننده های معکوس نیز پشتیبانی میکند. تکرارکننده های معکوس دو طرفه با دستیابی تصادفی اند که در یک شیء ترتیبی مثل لیست بطور معکوس حرکت میکنند.

 

سایر عناصر STL

علاوه بر کانتینرها، الگوریتم ها و تکرارکننده ها، STL از قطعات استاندارد دیگری نیز پشتیبانی میکند. مهمترین آنها عبارتنداز: تخصیص دهنده های حافظه، پیشگوها، توابع مقایسه و اشیای تابع.

هر کانتینر، تخصیص دهنده خاص خودش را تعریف میکند. تخصیص دهنده ها، تخصیص حافظه را برای کانتینر مدیریت میکنند. تخصیص دهنده اصلی شیءی از کلاس allocator است، اما در صورت نیاز میتوانید تخصیص دهنده هایی را تعریف کنید.

بسیاری از الگوریتم ها و کانتینرها از نوع خاصی از تابع به نام پیشگو استفاده میکنند. این توابع بر دو نوع اند:

► یکانی : پیشگویی یکانی دارای یک آرگومان است.

► دودویی : پیش گویی دودویی دارای دو آرگومان است.

نتیجه این توابع مقادری true یا false هستند. اما شرط های دقیقی که موجب میشوند آنها true یا false را برگردانند، توسط برنامه نویس تعریف میشوند. در هر دو نوع پیشگو آرگومانها حاوی مقادیری از نوع اشیایی هستند که باید در کانتینر ذخیره شوند.

علاوه بر فایل های سرآیند که مورد نیاز کلاسهای مختلف STL میبشاند، کتابخانه استاندارد C++ حاوی فایل های utility و functional است. با استفاده  از قالبهای موجود در فایل functional میتوان اشیایی ایجاد کرد که Operator را تعریف میکند. اینها را اشیای تابعی می نامند و در اغلب موارد میتوانند به جای اشاره گرهای تابع به کار گرفته شوند. اشیای تابعی که در فایل functional قرار دارند، عبارتنداز:

► plus

► minus

► multiplies

► divides

► modules

► negate

► equal_to

► not_equal_to

► greater

► greater_equal

► less

► less_equal

► logical_and

► logical_or

► logical_not

احتمالا بیشترین کاربرد را شیء less دارد و کارش این است که تعیین میکند آیا شیئی از شی دیگر کوچکتر است یا خیر. اشیای تابعی میتوانند به جای اشاره گرهای تابع در الگوریتم های STL به کار روند.

 

تئوری کلی در مورد عملیات STL

گرچه عملیات داخلی STL بسیار تکنیکی است استفاده از STL بسیار آسان است. اول باید کانتینر مورد نظر را انتخاب کنید. هر کدام دارای ویژگی ها و امتیازات خاصی است. وقتی کانتینری را انتخاب میکنید، با استفاده از توابع عضو آن، اعمالی مثل حذف، اضافه، دستیابی و اصلاح عنصر را انجام می دهید. حذف و اضافه عناصر در کانتینرها به روشهای مختلفی انجام میشود.

متداول ترین روش دستیابی به عناصر کانتینر، استفاده از تکرارکننده است.کانتینر خطی و وابسته، دارای توابع begin و end هستند که به ترتیب تکرارکننده هایی را که به ابتدا و انتهای کانتینر اشاره میکنند، برمیگردانند. این تکرارکننده ها برای دستیابی به محتویات کانتینرها بسیار مفید هستند.

وقتی کانتینری دارید که اطلاعات را ذخیره میکند، با یک یا جند الگوریتم قابل دستکاری است. الگوریتم ها نه تنها امکان تغییر محتویات کانتینرها را فراهم میکنند، بلکه با استفاده از آنها میتوان یک نوع از کانتینر خطی را به نوع دیگری تبدیل کرد.

 

 



2
نظرات
  • user avatar نشناس:
    ۱۰:۰۷:۰۲ __ ۱۴۰۰/۰۶/۱۲

    عالیه بود مطالبتون.خسته نباشید.

  • user avatar نشناس:
    ۱۰:۰۷:۱۱ __ ۱۴۰۰/۰۶/۱۲

    عالیه بود مطالبتون.خسته نباشید.

نظر خود را ارسال کنید



نام:
ایمیل:
دیدگاه:
captcha
کد امنیتی :


advertise
مفاهیم اولیه کتابخانه قالب استاندارد ++Cآشنایی با STL در سی پلاس پلاسآشنایی با مفهوم STL در ++Cکاربرد STL در ++c چگونه است؟تئوری کلی در مورد عملیات STLآموزش STL در سی پلاس پلاساس تی ال در سی پلاس پلاسکتابخانه قالب استاندارد در زبان ++c چیست؟عملیات STL روی کلاسهاتبلیغات ارزان سایت آموزش برنامه نویسیتبلیغات مخصوص طراحان وب سایتتبلیغات در سایت برنامه نویسیتبلیغات اینترنتی برای برنامه نویساندر آغوش مینیمالیسممنوی همبرگر با سه خط افقی که روی یکدیگر قرار گرفته اند نشانه چیست؟ سوئیچ به یک ستون واحدتبدیل متن ساده به وبلاگ و سایت های پویا با React.jsکتابخانه sass برای استفاده آسان تر از آنکتابخانه سطح بالا برای اتوماتیک سازی اعمال مرورگر لیست برچسب ها
تمامی حقوق این سایت اعم از محتوی ، تصاویر ، قالب و ... متعلق به گروه مهندسی وب سایت سورس کد می باشد.
SourceCodes.ir ، افقی روشن برای برنامه نویسان ، از مبتدی تا حرفه ای

پیشنهادات ویژه سورس کد

پکیج ویژه پروژه پایانی رشته کامپیوتر دانلود مجموعه 70 پروژه کاربردی سی شارپ وب سایت فروشگاه با php