آموزش C++20 در عمل: مبتدی تا مهندس نرم افزار

C++20 in Action: Beginner to Software Engineer

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
توضیحات دوره: C++11 تا C++20، مبانی، کلاس‌ها، اشاره‌گرها، STL، الگوها، مفاهیم، ​​محدوده‌ها، کانتینرها، تکرارکننده‌ها، همزمانی C++ مبانی: مفاهیم اصلی شامل متغیرها، انواع داده‌ها، عملیات‌های حسابی و ورودی/خروجی اولیه را درک کنید. . انواع خود را طراحی کنید: هنر تعریف انواع سفارشی با استفاده از کلاس ها، ساختارها، اتحادیه ها و شمارش ها را بیاموزید. درک ماژولاریت: کد خود را به طور موثر با استفاده از فضاهای نام، فایل های منبع و سرصفحه ها سازماندهی و ساختار دهید. آشنایی با ویژگی C++20 Modules. وارد OOP شوید: با دنیای برنامه نویسی شی گرا در C++ آشنا شوید و کلاس ها، سازنده ها، توابع اعضا و بارگذاری بیش از حد را درک کنید. درک عملیات اساسی: رمزگشایی معناشناسی کپی و جابجایی و پایه گذاری قانون سه/پنج. از قدرت الگوها استفاده کنید: با الگوهای ++C به برنامه‌نویسی عمومی بپردازید و از ایمنی نوع بدون محدودیت اطمینان حاصل کنید. مفاهیم (C++20) و برنامه نویسی عمومی: در حصول اطمینان از ایمنی نوع در زمان کامپایل از طریق مفاهیم عمیق تر شوید. کتابخانه C++ را کاوش کنید: با کتابخانه استاندارد C++، از کانتینرها و الگوریتم‌ها گرفته تا چندین ابزار کمکی آشنا شوید. رشته‌ها و فراتر از آن: عملیات رشته، string_view (C++17) را مسلط کنید و از قدرت عبارات منظم استفاده کنید. با جریان های ورودی/خروجی آشنا شوید: برای عملیات ورودی-خروجی کارآمد و فرمت شده، در دنیای جریان های ورودی/خروجی پیمایش کنید. تسلط Container: کلاس های کانتینری قدرتمند مانند بردار، لیست و نقشه را کاوش کنید. مهارت الگوریتمی: تفاوت های ظریف نحوه کار الگوریتم ها با کانتینرها و تکرارکننده ها را درک کنید. C++ Utilities: خود را به دانش در مورد اشاره گرهای هوشمند، ابزارهای زمان/تاریخ و موارد دیگر مجهز کنید. همزمانی و موازی سازی: با دنیای همزمان C++ شروع کنید و در مورد رشته ها، وظایف و مکانیسم های همگام سازی یاد بگیرید. پیش نیازها:آگاهی برنامه نویسی پایه مورد انتظار است. مثال: سوالاتی مانند "متغیر چیست؟"، "پردازنده چیست؟" و غیره در دوره پاسخ داده نخواهد شد. دسترسی به مرورگر مبتنی بر دسکتاپ برای تکمیل تمرینات کدنویسی و دسترسی کامپایلر آنلاین نیز الزامی است. راهنمای دوره در مورد استفاده از محیط کامپایلر آنلاین و از این رو استفاده از هیچ برنامه IDE را توضیح نمی دهد یا انتظار نمی رود.

قفل قدرت C++ را با این دوره جامع که برای مبتدیان و کسانی که به دنبال تجدید نظر هستند، باز کنید. در پایان این سفر، شما با دانش نوشتن برنامه های C++ معنی دار و اشتیاق به کاوش بیشتر مسلح خواهید شد.

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


چرا C++ یا CPP را یاد بگیریم؟

CPP به دلیل ترکیب بی‌نظیر عملکرد، تطبیق پذیری و قابلیت‌های شی گرا، جایگاهی متمایز در زبان‌های برنامه‌نویسی دارد. یادگیری CPP توسعه دهندگان را با درک عمیقی از معماری کامپیوتر، مدیریت حافظه و الگوهای طراحی نرم افزار پیشرفته مجهز می کند. علاوه بر این، نقش اساسی آن در توسعه بسیاری از زبان‌ها و سیستم‌های مدرن به این معنی است که دانش CPP اغلب به درک شهودی‌تری از سایر فناوری‌ها تبدیل می‌شود. چه برای برنامه‌های کاربردی با کارایی بالا، توسعه بازی، سیستم‌های تعبیه‌شده یا نرم‌افزارهای سیستمی، تخصص CPP می‌تواند به طور قابل توجهی افق توسعه‌دهنده را گسترش دهد، مهارت‌های حل مسئله را افزایش دهد و درها را به روی فرصت‌های شغلی مختلف در صنعت فناوری باز کند.


رنسانس C++ مدرن: کیفیت، ایمنی و کارایی هزینه (C++11 تا C++20)

C++ مدرن فراتر از پسوندهای زبانی صرف تکامل یافته است و به عنوان یک نیروی دگرگون کننده با تأکید بر ایمنی، بیان و تطبیق پذیری ظاهر شده است. ارائه ویژگی‌هایی مانند اشاره‌گرهای هوشمند، حلقه‌های مبتنی بر محدوده، و استنتاج نوع، توسعه‌دهندگان را تشویق می‌کند تا از هک‌های سنتی C-که اغلب مملو از خطاهایی هستند که منجر به خرابی‌ها و آسیب‌پذیری‌های زمان اجرا می‌شوند- به شیوه‌های کدنویسی قابل پیش‌بینی‌تر معاصر منتقل شوند. این تغییر صرفاً زیبایی شناختی نیست. این یک ضرورت اقتصادی است. نرم‌افزار ضعیف می‌تواند متحمل هزینه‌های جبرانی سنگینی شود، اعتماد کاربران را به خطر بیندازد و حتی منجر به از دست دادن درآمد شود. پذیرش C++ مدرن فقط به‌روز ماندن نیست. این یک حرکت استراتژیک به سمت تولید نرم‌افزار انعطاف‌پذیر است که از اعتبار برند و نتیجه نهایی محافظت می‌کند.


چرا این دوره آموزشی به سبک مصاحبه را با هک‌های سریع و ویژگی‌های منسوخ C-Style که هنوز کار می‌کنند، هدف قرار نمی‌دهد؟

اتخاذ یک طرز فکر با محوریت رشد شغلی بلندمدت در بازار کار غیرقابل پیش‌بینی امروز، که با اخراج‌های غیرمنتظره و تغییرات سریع مشخص می‌شود، ضروری است. فراگیرانی که با کنجکاوی و تعهد واقعی به مطالعات خود می پردازند، خود را به دانش و درک عمیق اصول و مفاهیم اساسی مجهز می کنند. هدف آنها درک "چی"، "چرا" و "چگونه" موضوع خود است، و اطمینان حاصل می کند که تخصص آنها در چالش های مختلف دنیای واقعی مرتبط و سازگار باقی می ماند. به عنوان مثال، در عواقب یک رکود اقتصادی قابل توجه، متخصصانی که درک عمیقی از آنها دارند، احتمالاً به طور یکپارچه در انتقال شغل پیش می روند. در عین حال، کسانی که برای اهداف کوتاه‌مدت، مانند پاک کردن یک مصاحبه، صرفاً به حفظ کردن اتکا کرده‌اند، ممکن است خود را برای انطباق بی‌مهارت ببینند. چنین آماده سازی سطحی ممکن است به دستیابی به اهداف فوری کمک کند، اما می تواند چشم انداز شغلی بلند مدت و عملکرد در محیط های کاری پویا را به خطر بیندازد. این دوره فراگیران را تشویق می‌کند تا رویکرد قبلی و جامع را پذیرفته و آنها را برای موفقیت پایدار آماده کنند.



سرفصل ها و درس ها

معرفی Introduction

  • بررسی اجمالی دوره: مروری بر هر بخش برای درک بهتر محتوا Course Overview : A walkthrough of each section to understand the content better

  • [اختیاری] قبل از شیرجه زدن به دوره، دیدگاه مربی را بدانید [Optional] Know the instructor's perspective before diving into the course

  • دست گرمی بازی کردن Warm-up

  • برنامه ++C چیست؟ What is a C++ program?

  • Hello World: ساده ترین برنامه ++C Hello World: The simplest C++ program

  • مروری سریع بر ابزار توسعه آنلاین Compiler Explorer Quick overview of the online development tool Compiler Explorer

  • بررسی سریع Quick Check

  • شروع با تمرینات Udemy Coding Getting started with Udemy Coding exercises

  • شروع با برنامه Hello World. Getting started with a Hello World program.

ویژگی های اساسی C++ موجود در همه برنامه های C++ Basic Features of C++ present in all C++ programs

  • توابع: اعلان و نحو اولیه Functions : Declaration and basic syntax

  • تمرین کدگذاری تابع پایه Basic function coding exercise

  • توابع: تغییرات احتمالی در نحو برای پشتیبانی از ویژگی های بیشتر Functions: Possible variations in syntax to support more features

  • تغییرات عملکرد Function variations

  • انواع و متغیرها در C++ Types and variables in C++

  • استفاده از انواع برای ایجاد متغیرها در یک برنامه Using types to create variables in a program

  • عملیات حسابی با انواع فاندامنتال در C++ Arithmetic operations with Fundamental types in C++

  • عملگرهای حسابی Arithmetic operators

  • مقداردهی اولیه و کلمه کلیدی خودکار در C++ Initializations and auto keyword in C++

  • مقداردهی اولیه متغیرها Initialization of variables

  • با استفاده از کلمه کلیدی خودکار using auto keyword

  • محدوده و طول عمر موجودیت ها در برنامه های C++ Scope and lifetime of entities in C++ programs

  • محدوده و زمان عمر اشیا در برنامه ها Scopes and life times of objects in programs

  • ثابت ها در برنامه های C++: const، constexpr، consteval Constants in C++ programs : const, constexpr, consteval

  • Const درستی Const correctness

  • آرایه ها، اشاره گرها و مراجع در C++ Arrays, Pointers and References in C++

  • ارجاعات نشانگرهای آرایه Array pointers references

  • اشاره گرهای تهی در C++ مدرن Null pointers in Modern C++

  • با استفاده از nullptr Using nullptr

  • درک اشاره گرها و مراجع از دیدگاه سخت افزاری Understanding pointers and references from a hardware perspective

  • تست و انتخاب گردش کار مبتنی بر عبارات شرطی و حلقه Testing and selection based workflows with conditional statements and looping

  • اظهارات در غیر این صورت if-else statements

  • بیانیه های موردی را تغییر دهید Switch case statements

  • استفاده از حلقه های while Using while loops

  • آزمون بخش Section Quiz

انواع تعریف شده توسط کاربر در C++ مدرن User Defined Types in Modern C++

  • مقدمه ای بر انواع تعریف شده توسط کاربر Introduction to User Defined Types

  • جستجوگر نوع ساخته شده به کارگیری اصول اولیه. Builtin type checker. Applying the basics.

  • ساختارها در C++ Structures in C++

  • استفاده از ساختارها در C++ Using Structures in C++

  • مقدمه ای بر کلاس های C++ مدرن Introduction to Classes in Modern C++

  • کار با کلاس ها Working with classes

  • آشنایی با Enumerations در C++ Understanding the Enumerations in C++

  • کار با Enumerations در C++ مدرن Working with Enumerations in modern C++

  • مفهوم اتحاد و انواع در C++ Concept of Union and Variants in C++

  • استفاده از std::variant Using std::variant

  • آزمون بخش Section Quiz

مدولار بودن Modularity

  • قانون مقدمه و یک تعریف Introduction and One Definition Rule

  • ODR در عمل ODR in practice

  • کامپایل جداگانه - مکانیزم فایل های سرصفحه Separate Compilation - Header Files Mechanism

  • کار با فایل های هدر Working with Header files

  • ماژول ها (از C++20 معرفی شدند) Modules ( introduced since C++20)

  • فضاهای نام Namespaces

  • کار با فضاهای نام در C++ Working with namespaces in C++

  • آرگومان های تابع Function Arguments

  • سناریوهای قبول استدلال Argument passing scenarios

  • مقادیر را از توابع برگردانید Return Values from functions

  • برگرداندن مقادیر در توابع برنامه های ++C Returning values in functions of C++ programs

  • استفاده از اتصالات ساختاریافته (ویژگی C++17) Using structured bindings ( C++17 feature )

  • آزمون بخش Section Quiz

مدیریت خطا در C++ Error Handling in C++

  • مقدمه ای بر مدیریت خطا Introduction to error handling

  • استثناها در C++ Exceptions in C++

  • کار با استثناها Working with exceptions

  • متغیرها Invariants

  • درک نقش متغیرها در برنامه ها. Understanding the role of invariants in programs.

  • جایگزین های مدیریت خطا در C++ Alternatives to Error handling in C++

  • استفاده از جایگزین های مختلف مدیریت خطا در برنامه ها Using various error handling alternatives in programs

  • اظهارات در C++ Assertions in C++

  • ادغام ادعا در برنامه های C++ Intergrating assertion in C++ programs

  • آزمون بخش Section Quiz

کلاس ها Classes

  • مقدمه ای بر کلاس ها در C++ Introduction to Classes in C++

  • انواع بتن در C++ Concrete Types in C++

  • نمونه نوع بتن: کلاس اعداد مختلط Concrete Type Example : Complex Number class

  • پیاده سازی عدد مختلط Implementing the complex number.

  • نوع بتن مثال: کلاس کانتینری Concrete Type Example: Container class

  • انواع چکیده در C++ Abstract Types in C++

  • استفاده از انواع انتزاعی در برنامه های ++C Using abstract types in C++ programs

  • توابع مجازی در C++ Virtual Functions in C++

  • سلسله مراتب کلاس در C++ Class Hierarchies in C++

  • کار با سلسله مراتب کلاس در C++ Working with class hierarchies in C++

  • سلسله مراتب طبقاتی در عمل Class Hierarchies in Practice

  • آزمون بخش Section Quiz

عملیات ضروری با کلاس های لازم برای ساخت برنامه ها Essential operations with classes necessary to build programs

  • مقدمه ای بر عملیات ضروری و مقداردهی اولیه اعضا Introduction to essential opearations and Member initialization

  • اجرای عملیات ضروری Implementing essential operations

  • معناشناسی عملیات کپی و جابجایی Copy and move operation semantics

  • استفاده از sematics حرکت برای کپی کارآمد. Using move sematics for efficient copying.

  • مدیریت منابع در C++ Resource Management in C++

  • بارگذاری بیش از حد اپراتور Operator overloading

  • پیاده سازی اضافه بار اپراتور در کلاس های تعریف شده توسط کاربر Implementing operator overloading in user defined classes

  • عملیات متعارف - 1 Conventional Operations - 1

  • عملیات متعارف - 2 Conventional Operations - 2

  • کار با اپراتور سفینه فضایی (C++20) Working with spaceship operator ( C++20 )

  • پیاده سازی یک تابع هش ساده Implementing a simple hashing function

  • حروف تعریف شده توسط کاربر User Defined Literals

  • پیاده سازی لفظ های تعریف شده توسط کاربر Implementing User defined literals

  • آزمون بخش Section Quiz

قالب ها Templates

  • مقدمه ای بر قالب ها و انواع پارامتر شده. Introduction to templates and parameterized types.

  • کار با انواع پارامتر شده Working with parameterized types

  • مفاهیم در C++ Concepts in C++

  • کار با مفاهیم (C++20) Working with Concepts ( C++20)

  • کسر آرگومان قالب و موارد خاصی که کامپایلر به کمک شما نیاز دارد! Template argument deduction and special cases where compiler needs your help!

  • کسر آرگومان الگو در عمل Template argument deduction in practice

  • الگوهای تابع و کارکردها Function Templates and Functors

  • استفاده از قالب تابع و اشیاء تابع در برنامه ها Using function template and function objects in programs

  • عبارات لامبدا Lambda Expressions

  • استفاده از عبارات لامبدا در برنامه های ++C. Using lambda expressions in your C++ programs.

  • مکانیزم های قالب Template mechanisms

  • کار با نام مستعار Working with aliases

  • آزمون بخش Section Quiz

مفاهیم (C++20) و برنامه نویسی عمومی Concepts ( C++20) and Generic Programming

  • مقدمه ای بر مفاهیم به عنوان افزونه برای استفاده از موارد قالب. Introduction to Concepts as extension to use cases of templates.

  • نیاز به مفاهیم در سیستم نوع C++ Need for concepts in the C++ type system

  • استفاده از مفاهیم در برنامه ها Using concepts in programs

  • بارگذاری بیش از حد مبتنی بر مفاهیم Concepts based overloading

  • پیاده سازی مفاهیم مبتنی بر اضافه بار (C++20) Implementing concepts based overloading (C++20)

  • بررسی کد معتبر با استفاده از مفاهیم در برنامه ها Checking Valid code using concepts in programs

  • تعریف یک مفهوم Defining a concept

  • ایجاد مفاهیم (C++20) Creating concepts ( C++20 )

  • مفاهیم و کلمه کلیدی خودکار Concepts and auto keyword

  • برنامه نویسی عمومی به عنوان یک مورد استفاده از مفاهیم و الگوها Generic programming as a use case of concepts and templates

  • قالب های متنوع Variadic templates

  • استفاده از بسته های پارامتر و قالب های متنوع Using parameter packs and variadic templates

  • Fold Expressions (C++17)، ارسال آرگومان، مدل کامپایل الگو Fold Expressions ( C++17) , Argument forwarding, Template compilation model

  • کار با عبارات Fold (C++17) Working with Fold expressions ( C++17)

  • آزمون بخش Section Quiz

نمای کلی کتابخانه استاندارد C++ C++ Standard Library Overview

  • مقدمه ای بر کتابخانه استاندارد C++ Introduction to C++ standard library

  • نمای کلی اجزای کتابخانه استاندارد Standard library components overview

  • سازمان کتابخانه استاندارد Standard Library Organization

  • مشکلات هدر متعدد و حل آنها Multiple header issues and solving them

  • آزمون بخش Section Quiz

رشته ها و عبارات منظم Strings and Regular Expressions

  • معرفی Introduction

  • رابط و عملیات کلاس رشته C++ C++ String class interface and operations

  • رابط و عملیات کلاس رشته C++ C++ String class interface and operations

  • نمای کلی اجرای رشته String implementation overiew

  • ویژگی string_view C++ string_view feature of C++

  • استفاده از string_view در برنامه ها (C++17) Using string_view in programs (C++17)

  • کلاس های Regex در C++ Regex classes in C++

  • نماد Regex و نمای کلی استفاده Regex notation and usage overview

  • کار با std::regex Working with std::regex

  • آزمون بخش Section Quiz

ورودی و خروجی Input and Output

  • مقدمه ای بر امکانات IO در C++ Introduction to IO facilities in C++

  • Ostream: جریان های خروجی Ostream: Output streams

  • Istream: جریان ورودی Istream: Input Stream

  • وضعیت IO: مدیریت حالت های مختلف جریان ها مانند کد تولید. IO state : Handling the various states of streams like production code.

  • IO با انواع تعریف شده توسط کاربر IO with User Defined Types

  • نوشتن عملیات خروجی ورودی برای انواع تعریف شده توسط کاربر. Writing input output opreatios for User defined Types.

  • قالب بندی جریانی برای ارائه داده ها با فرمت مناسب Stream formatting for presenting data with appropriate format

  • توابع را برای ارائه داده ها در قالب بندی سبک printf قالب بندی کنید Format functions to present data in the printf style formatting

  • ویژگی Working std::format با C++20 ارسال شده است Working std::format feature shipped with C++20

  • جریان در C++ Streams in C++

  • کار با جریان های رشته ای Working with string streams

  • تسهیلات سیستم فایل در کتابخانه استاندارد C++ Filesystem facilites in the standard library of C++

  • سیستم های فایل (C++17) Filesystems ( C++17)

  • آزمون بخش Section Quiz

کانتینر (STL) Container (STL)

  • آشنایی با ظروف STL Introduction to STL containers

  • بردار Vector

  • لیست و لیست فوروارد List and forward list

  • کار با vector، list و forward_list Working with vector, list and forward_list

  • نقشه Map

  • کار با std::map و std::set Working with std::map and std::set

  • نقشه نامرتب (نقشه هش) Unordered Map (Hash map )

  • با استفاده از نقشه هش و مجموعه هش در C++ Using the hash map and hash set in C++

  • تخصیص دهنده ها در C++ Allocators in C++

  • نمای کلی کانتینر از دیدگاه تولید Container overview from production perspective.

  • آزمون بخش Section Quiz

الگوریتم ها (STL) Algorithms (STL)

  • مقدمه ای بر الگوریتم های STL در C++ Introduction to STL algorithms in C++

  • استفاده از تکرار کننده ها توسط الگوریتم های STL برای دستیابی به عملکردهای عمومی Use of iterators by STL algorithms to achieve generic functionalities

  • کار با تکرار کننده ها و الگوریتم های STL Working with iterators and STL algorithms

  • انواع تکرار کننده ها Types of iterators

  • محمولات Predicates

  • استفاده از گزاره ها با الگوریتم های STL Using predicates with STL algorithms

  • مروری بر الگوریتم های متداول STL در کد تولید. Overview of commonly use STL algorithms in production code.

  • الگوریتم های موازی معرفی شده در کتابخانه استاندارد Parallel Algorithms introduced in standard library

  • مسابقه بخش Section quiz

محدوده (C++20) Ranges ( C++20)

  • مقدمه ای بر محدوده ها در C++ Introduction to ranges in C++

  • بازدیدها Views

  • ژنراتورها به عنوان ابزار پشتیبانی برای محدوده ها Generators as supporting tools for ranges

  • کار با محدوده ها و ژنراتورها (C++20) Working with ranges and generators ( C++20 )

  • خطوط لوله Pipelines

  • مروری بر مفاهیم Concepts overview

  • آزمون بخش Section Quiz

اشاره گر و کانتینر (غیر STL) Pointers and Container (non STL)

  • مقدمه ای بر اشاره گرها و کانتینرها Introduction to Pointers and containers

  • اشاره گرها Pointers

  • اشاره گر منحصر به فرد و اشاره گر مشترک (unique_ptr و shared_ptr) Unique Pointer and shared Pointer (unique_ptr and shared_ptr )

  • استفاده از unique_ptr و shared_ptr در برنامه های C++ برای ایمن تر کردن آنها. Using unique_ptr and shared_ptr in C++ programs to make them safer.

  • طول Span

  • استفاده از spans به جای ارسال آرایه قدیمی به سبک C (C++20) Using spans instead of old C-style array passing (C++20)

  • کانتینرها (غیر STL) Containers (Non STL)

  • کار با جفت و تاپل در برنامه های ++C Working with pair and tuple in C++ programs

  • گزینه های جایگزین (نوع، اختیاری، هر) Alternatives (variant, optional , any)

  • کار با std::variant و std:: اختیاری (C++17) Working with std::variant and std::optional ( C++17 )

  • آزمون بخش Section Quiz

ابزارهای ارائه شده توسط کتابخانه استاندارد C++ Utilities provided by C++ standard library

  • معرفی Introduction

  • Time , Chrono Utilities Time , Chrono utilities

  • استفاده از ابزارهای chrono در برنامه های خود Applying chrono utilities in your programs

  • سازگاری عملکرد Function adaption

  • اعمال سازگاری تابع Applying function adaption

  • توابع را تایپ کنید Type functions

  • استفاده از توابع Type در برنامه های خود Using Type functions in your programs

  • ویژگی مکان منبع Source location feature

  • معناشناسی حرکت و جلو move and forward semantics

  • کار با معناشناسی حرکت و جلو برای استفاده از قدرت C++ مدرن Working with move and forward semantics to leverage the power of Modern C++

  • نمای کلی ابزارهای دستکاری بیت Bit manipulation utilities overview

  • راه های خروج از برنامه ها به صورت قابل پیش بینی Ways of exiting programs predictably

  • آزمون بخش Section Quiz

اعداد در کتابخانه استاندارد C++ Numerics in C++ standard library

  • معرفی Introduction

  • مروری سریع بر الگوریتم های عددی و توابع ریاضی در کتابخانه ++C Quick overview of numerical algorithms and mathematical functions in C++ library

  • استفاده از الگوریتم های عددی موجود در کتابخانه استاندارد C++ Utilizing the numerical algorithms available in C++ standard library

  • امکانات اعداد تصادفی ارائه شده توسط کتابخانه استاندارد Random number facilities provided by standard library

  • با استفاده از امکانات اعداد تصادفی ارائه شده در C++ مدرن Using random number facilites provided in modern C++

  • وکتور حساب و سایر امکانات ارائه شده توسط کتابخانه استاندارد Vector Arithmetic and other facilities provided by standard library

  • استفاده از valaray در برنامه های C++ برای محاسبات برداری Using valarray in C++ programs for vector arithmetic

  • آزمون بخش Section Quiz

مقدمه ای بر Concurrency با استفاده از C++ مدرن (تا C++20) Introduction to Concurrency using Modern C++ ( upto C++20)

  • معرفی Introduction

  • مفهوم وظیفه و رشته ها The notion of task and threads

  • یک برنامه همزمان ساده با استفاده از ساختارهای همزمان C++ مدرن A simple concurrent program using Modern C++ concurrency constructs

  • ارسال آرگومان ها و برگرداندن مقادیر از رشته ها Passing arguments and returning values from threads

  • انتقال داده ها و برگرداندن نتایج از برنامه های همزمان در C++ Passing data and getting back results from concurrent programs in C++

  • به اشتراک گذاری داده ها بین رشته ها Sharing data between threads

  • استفاده از mutex و lock برای به اشتراک گذاری داده ها بین رشته ها بدون خرابی. Using mutex and lock to share data between threads without corruption.

  • انتظار برای رویدادها با استفاده از متغیر شرط Waiting for events using condition variable

  • استفاده از متغیرهای شرط در برنامه ها Using condition variables in programs

  • جایگزین هایی برای به اشتراک گذاری داده ها و معناشناسی سطح پایین با استفاده از Futures. Alternatives to sharing data and low level semantics using Futures.

  • استفاده از قراردادهای آتی در برنامه های ++C Using futures in C++ programs

  • مقدمه ای کوتاه بر Corutines A brief introduction to Coroutines

  • آزمون بخش Section Quiz

منابع Resources

  • [سخنرانی پاداش] [Bonus Lecture]

نمایش نظرات

نظری ارسال نشده است.

آموزش C++20 در عمل: مبتدی تا مهندس نرم افزار
خرید اشتراک و دانلود خرید تکی و دانلود | 160,000 تومان (5 روز مهلت دانلود) زمان تقریبی آماده سازی لینک دانلود این دوره آموزشی حدود 5 تا 24 ساعت می باشد.
جزییات دوره
14 hours
126
Udemy (یودمی) udemy-small
12 مهر 1402 (آخرین آپدیت رو دریافت می‌کنید، حتی اگر این تاریخ بروز نباشد.)
419
4.6 از 5
دارد
دارد
دارد

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Subodh Chiwate Subodh Chiwate

برنامه نویس، امور مالی شخصی، فناوری

من Subodh (36) هستم، یک برنامه نویس با MS در مهندسی برق و مقیم هند.

من روی پروژه‌هایی در حوزه‌های متعددی مانند بیمه، ایمیل، سیستم‌های تعبیه‌شده برای پزشکی از راه دور، توزیع سینمای دیجیتال، سیستم‌های توزیع‌شده، و ساختن نقشه کار کرده‌ام.

از کاوش در ارتباط بین چگونه و چرا در مورد هر مشکل فنی لذت می برم. در طول سالها متوجه شده ام که تحقیق یک سبک زندگی است و مهندسی یک نگرش است.

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

ایده ها و پیشنهادات شما همیشه مورد استقبال قرار می گیرد.

Udemy (یودمی)

یودمی یکی از بزرگ‌ترین پلتفرم‌های آموزشی آنلاین است که به میلیون‌ها کاربر در سراسر جهان امکان دسترسی به دوره‌های متنوع و کاربردی را فراهم می‌کند. این پلتفرم امکان آموزش در زمینه‌های مختلف از فناوری اطلاعات و برنامه‌نویسی گرفته تا زبان‌های خارجی، مدیریت، و هنر را به کاربران ارائه می‌دهد. با استفاده از یودمی، کاربران می‌توانند به صورت انعطاف‌پذیر و بهینه، مهارت‌های جدیدی را یاد بگیرند و خود را برای بازار کار آماده کنند.

یکی از ویژگی‌های برجسته یودمی، کیفیت بالای دوره‌ها و حضور استادان مجرب و با تجربه در هر حوزه است. این امر به کاربران اعتماد می‌دهد که در حال دریافت آموزش از منابع قابل اعتماد و معتبر هستند و می‌توانند به بهترین شکل ممکن از آموزش‌ها بهره ببرند. به طور خلاصه، یودمی به عنوان یکی از معتبرترین و موثرترین پلتفرم‌های آموزشی آنلاین، به افراد امکان می‌دهد تا به راحتی و با کیفیت، مهارت‌های مورد نیاز خود را ارتقا دهند و به دنبال رشد و پیشرفت شغلی خود باشند.