fa.mk244
جمعه 28 بهمن 1390, 03:00 صبح
چون تو سایت مطلب جامع و کاملی برای این بحث نبود،این تاپیک باز کردم
تا اونجایی که میشد از همه منابع در دسترس کمک گرفتم،ولی بازم برای اطلاعات بیشتر میتونین از سایت سازنده sgi (http://www.sgi.com/tech/stl/stl_index_cat.html) و msdn (http://msdn.microsoft.com/en-us/library/c191tb28.aspx) و cplusplus.com (http://www.cplusplus.com/reference/stl/) استفاده کنین
هر کدی که میزارم با Borland C++ 5.02 و یا Visual Studio 2010 کامپایل شده(یه سری رو Borland جواب نمیده بخاطر زیرخاکی بودنش و یه سری هم روی Visual Studio چون نیاز بوده ببینین که استفاده اشتباه از یه دستور چی میده به خروجی!!!)
این مطلب در این سایت آپدیت میشه (http://forum.infoboy.ir/showthread.php?tid=392)
__________________________________________________ ______________________________
اول یه مقدمه ای درباره STL میگم
Standard Template Library (STL)، کلاس ها و توابع همه منظوره و قالب را ارائه میکنه که اکثر الگوریتم ها و ساختمان داده های معروف و متداول را پیاده سازی می کنن. همینطور روشهایی را برای دستیابی به آنها ارئه میده. چون STL از کلاسهای قالب درست شده، الگوریتم ها و ساختمان داده های آنها تقریبا برای تمام انواع داده ای قابل استفادن.
هسته اصلی STL،سه مولفه است: کانتینرها(containers)،الگوریتمه ا(algorithms) و تکرار گرها(iterators).
Containers و iterators از دسته کلاسهای الگو هستن. iterators برای پیمایش همه عناصر یک ظرف استفاده میشن. algorithms برای دستکاری داده ها استفاده میشن.
دلایل استفاده از STL:
- کاهش زمان کدنویسی بخاطر وجود ساختمان داده های نوشته شده و کامپایل شده از قبل
- خواناتر شدن برنامه
- قدرتمندتر شدن برنامه
- قابل حمل بودن برنامه
- آسانی استفاده از آن
container: اشیایی که مانند ظرف عمل کرده و اشیای دیگر را نگهداری می کنن و انواع مختلفی دارن.
- deque , list , vector : Sequential Container
- map , multimap , multiset , set : Associative Container
- priority_queue , queue , stack : Adapters Container
algorithm: الگوریتم ها بر روی کانتینر ها عمل می کنن. با اگوریتمها میشه محتویات کانتینر ها را دستکاری کرد. قابلیتهای آنها شامل: ارزش دهی،مرتب سازی،جستجو و جابجایی محتویات کانتینر هاست.
iterator: به iterator طی کننده یا تکرار کننده هم گفته میشه.iterator ها اشیایی هستن که اغلب آنها اشاره گرن و با استفاده از آنها میشه محتویات کانتینرها را مانند آرایه ها پیمایش کرد.
تا اونجایی که میشد از همه منابع در دسترس کمک گرفتم،ولی بازم برای اطلاعات بیشتر میتونین از سایت سازنده sgi (http://www.sgi.com/tech/stl/stl_index_cat.html) و msdn (http://msdn.microsoft.com/en-us/library/c191tb28.aspx) و cplusplus.com (http://www.cplusplus.com/reference/stl/) استفاده کنین
هر کدی که میزارم با Borland C++ 5.02 و یا Visual Studio 2010 کامپایل شده(یه سری رو Borland جواب نمیده بخاطر زیرخاکی بودنش و یه سری هم روی Visual Studio چون نیاز بوده ببینین که استفاده اشتباه از یه دستور چی میده به خروجی!!!)
این مطلب در این سایت آپدیت میشه (http://forum.infoboy.ir/showthread.php?tid=392)
__________________________________________________ ______________________________
اول یه مقدمه ای درباره STL میگم
Standard Template Library (STL)، کلاس ها و توابع همه منظوره و قالب را ارائه میکنه که اکثر الگوریتم ها و ساختمان داده های معروف و متداول را پیاده سازی می کنن. همینطور روشهایی را برای دستیابی به آنها ارئه میده. چون STL از کلاسهای قالب درست شده، الگوریتم ها و ساختمان داده های آنها تقریبا برای تمام انواع داده ای قابل استفادن.
هسته اصلی STL،سه مولفه است: کانتینرها(containers)،الگوریتمه ا(algorithms) و تکرار گرها(iterators).
Containers و iterators از دسته کلاسهای الگو هستن. iterators برای پیمایش همه عناصر یک ظرف استفاده میشن. algorithms برای دستکاری داده ها استفاده میشن.
دلایل استفاده از STL:
- کاهش زمان کدنویسی بخاطر وجود ساختمان داده های نوشته شده و کامپایل شده از قبل
- خواناتر شدن برنامه
- قدرتمندتر شدن برنامه
- قابل حمل بودن برنامه
- آسانی استفاده از آن
container: اشیایی که مانند ظرف عمل کرده و اشیای دیگر را نگهداری می کنن و انواع مختلفی دارن.
- deque , list , vector : Sequential Container
- map , multimap , multiset , set : Associative Container
- priority_queue , queue , stack : Adapters Container
algorithm: الگوریتم ها بر روی کانتینر ها عمل می کنن. با اگوریتمها میشه محتویات کانتینر ها را دستکاری کرد. قابلیتهای آنها شامل: ارزش دهی،مرتب سازی،جستجو و جابجایی محتویات کانتینر هاست.
iterator: به iterator طی کننده یا تکرار کننده هم گفته میشه.iterator ها اشیایی هستن که اغلب آنها اشاره گرن و با استفاده از آنها میشه محتویات کانتینرها را مانند آرایه ها پیمایش کرد.