رفتن به محتوا
ماژول 5

STL و الگوریتم‌ها

تسلط بر کتابخانه قالب استاندارد (STL) — کانتینرها، تکرارگرها، الگوریتم‌ها، بازه‌ها و برنامه‌نویسی تابعی.

کانتینرها

  1. Sequence Containers: vector, deque, list, array

    کانتینرهای ترتیبی در STL را بررسی کنید — vector، deque، list، forward_list و array. تفاوت‌های عملکرد، چیدمان حافظه و قوانین نامعتبرسازی تکرارگر را بیاموزید.

  2. Associative Containers: map, set, unordered_map

    درباره کانتینرهای انجمنی مرتب و نامرتب بیاموزید — mapها، setها و انواع multi- و unordered آن‌ها. بفهمید چه زمانی درخت‌ها و چه زمانی جداول هش را انتخاب کنید.

  3. Container Adaptors و کانتینرهای ویژه

    درباره stack، queue، priority_queue و نوع‌های واژگانی مدرن مانند span، string_view و optional بیاموزید. بفهمید چه زمانی آداپتورها کد شما را ساده‌تر می‌کنند.

تکرارگرها و الگوریتم‌ها

  1. تکرارگرها: چسب STL

    دسته‌بندی‌های تکرارگر را بشناسید، از تکرارگرهای ورودی تا تکرارگرهای پیوسته. حساب تکرارگر، قرارداد begin/end و نحوه اتصال تکرارگرها به الگوریتم‌ها را بیاموزید.

  2. الگوریتم‌های STL: قدرت <algorithm>

    مهم‌ترین الگوریتم‌های STL را فرا بگیرید — از جستجو و مرتب‌سازی تا تبدیل و تجمیع. بیاموزید چگونه الگوریتم‌ها با تکرارگرها برای کد رسا و کارآمد ترکیب می‌شوند.

  3. لامبداها و برنامه‌نویسی تابعی

    لامبداهای ++C را فرا بگیرید — لیست‌های گرفتن، لامبداهای mutable، لامبداهای عمومی و استفاده آن‌ها به عنوان محمول‌های الگوریتم. std::function، std::invoke و الگوی IIFE را بیاموزید.

بازه‌ها و نماها (‎C++‎20)

  1. بازه‌های ‎C++‎20: پارادایمی جدید

    بازه‌های ‎C++‎20 را کشف کنید — بازطراحی مدرن رابط الگوریتم STL. مفاهیم بازه، الگوریتم‌های مبتنی بر بازه، تصویرسازی‌ها و عملگر لوله برای تبدیل‌های داده ترکیب‌پذیر را بیاموزید.

  2. نماها، ارزیابی تنبل و ترکیب

    نماهای ‎C++‎20 را فرا بگیرید — آداپتورهای بازه سبک و تنبل که با عملگر لوله ترکیب می‌شوند. filter، transform، take، drop، split، join، iota و نحوه ساخت خطوط لوله داده قدرتمند بدون تخصیص‌های میانی را بیاموزید.