کتابخانه استاندارد قالب: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
Icypress99 (بحث | مشارکت‌ها)
تکمیل اطلاعات قبلی
برچسب‌ها: دارای ادبیات عامیانه ویرایشگر دیداری
Icypress99 (بحث | مشارکت‌ها)
تکمیل بخش iterators
خط ۱۲۱:
 
=== Iterators ===
این کتابخانه شامل پنج نوع تکرارشونده است. که عبارت اند از:
 
''input iterators'' (که فقط برای خواندن مقادیر به صورت ترتیبی قابل استفاده هستند)،
=== [[الگوریتم|Algorithms]] ===
 
''output iterators'' (که فقط برای نوشتن مقادیر به صورت ترتیبی قابل استفاده هستند)،
=== Functions ===
شمول شدن کتابخانه [[الگوریتم (سی++)|الگوریتم]] توابعی را به همراه دارد که در ترتیب دهی و جستجو در آرایه‌ها بسیار مفید است.<ref name=":0"/>الگوریتم‌ها در ظروف نقش بسیار مفیدی دارند.<ref name=":1">{{یادکرد وب|عنوان=Containers - C++ Reference|نشانی=http://www.cplusplus.com/reference/stl/|وبگاه=www.cplusplus.com|بازبینی=2020-08-03}}</ref>
 
''forward iterators'' (که قابل خواندن ، نوشتن و حرکت به جلو است)،
== ظروف ==
ظروف، اشیاء و داده را به همراه دارد.
 
''bidirectional iterators'' (مانند forward iterators هستند ، اما همچنین می توانند به عقب حرکت کنند) و
deque,array,list,forward_list,set,mulitset,map,multimap,queue,priority_queue,stack,unordered_set,unordered_multiset,unordered_map,unordered_multimap
 
''random access iterators'' (که می توانند با تعداد آزادانه هر مرحله را در یک عملیات حرکت دهند)
همچنین همه این کلاس‌ها توابع تقریباً یکسانی دارند.<ref name=":0"/><ref name=":1"/>
 
 
== تکرارها ==
یک مفهوم اساسی STL محدوده ای است که یک جفت تکرار شونده است که ابتدا و انتهای محاسبه را تعیین می کند و بیشتر قالب های الگوریتمی کتابخانه که بر روی ساختارهای داده کار می کنند دارای رابط هایی هستند که از بازه استفاده می کنند.<ref>{{Cite journal|last=Ryu|first=Gukbeen|last2=Kim|first2=Gyu-Tae|last3=Song|first3=Kwang Yong|last4=Bae Lee|first4=Sang|last5=Lee|first5=Kwanil|date=2018-07|title=Long Range One-End Accessible BOCDA Adopting Time Domain Data Processing|url=http://dx.doi.org/10.1109/oecc.2018.8729903|journal=2018 23rd Opto-Electronics and Communications Conference (OECC)|publisher=IEEE|doi=10.1109/oecc.2018.8729903|isbn=978-1-5386-9145-8}}</ref>
تکرارها برای پیمایش در عناصر ظروف استفاده می‌شوند. برای مثال اینکه یک عنصر در کجای ظرف اضافه شود.
 
bidirectional iterators ممکن است مانند random access iterators عمل کنند ، بنابراین حرکت به جلو در ده مرحله می تواند با حرکت به جلو در یک مرحله و در کل ده بار انجام شود. با این وجود ، random access iterators مجزا مزایای کارایی را به همراه دارد. به عنوان مثال ، یک بردار یک random access iterators دارد ، اما یک لیست فقط یک bidirectional iterators دارد.
 
تکرار کننده ها ویژگی اصلی هستند که به کلیات STL اجازه می دهند. به عنوان مثال ، یک الگوریتم برای معکوس سازی یک توالی می تواند با استفاده از bidirectional iterators پیاده سازی شود ، و سپس همان پیاده سازی را می توان در لیست ها ، vectors و deques استفاده کرد. کانتینرهای ایجاد شده توسط کاربر فقط باید یک تکرار کننده ارائه دهند که یکی از پنج رابط استاندارد تکرار کننده را پیاده سازی کند و تمام الگوریتم های ارائه شده در STL را می توان روی کانتینر ها استفاده کرد.
 
=== [[الگوریتم|Algorithms]] ===
تعداد زیادی الگوریتم برای انجام فعالیتهایی از قبیل جستجو و مرتب سازی در STL ارائه شده است که هرکدام برای نیاز به سطح مشخصی از تکرار کننده پیاده سازی شده اند (و بنابراین بر روی هر کانتینر که از طریق تکرار کننده ها رابطی را فراهم می کند کار خواهند کرد).
 
=== Functions ===
شمول شدن کتابخانه [[الگوریتم (سی++)|الگوریتم]] توابعی را به همراه دارد که در ترتیب دهی و جستجو در آرایه‌ها بسیار مفید است.<ref name=":0"/>الگوریتم‌ها در ظروف نقش بسیار مفیدی دارند.<ref name=":1">{{یادکرد وب|عنوان=Containers - C++ Reference|نشانی=http://www.cplusplus.com/reference/stl/|وبگاه=www.cplusplus.com|بازبینی=2020-08-03}}</ref>
 
== منابع ==