title
C++ Tutorial : C++ Full Course

description
MY UDEMY COURSES ARE 87.5% OFF TIL March 26th ($9.99) ONE IS FREE ➡️ Python Data Science Series for $9.99 : Highest Rated & Largest Python Udemy Course + 56 Hrs + 200 Videos + Data Science https://bit.ly/Master_Python_50 ➡️ C++ Programming Bootcamp Series for $9.99 : Over 23 Hrs + 53 Videos + Quizzes + Graded Assignments + New Videos Every Month https://bit.ly/C_Course_50 ➡️ FREE 15 hour Golang Course!!! : https://bit.ly/go-tutorial9 (100 Available) I LIVESTREAM CODE HERE : https://www.twitch.tv/derekbanas MY DISCORD : https://discord.gg/VckHCAvA ( Contact Me Anytime ) Here is the Code : http://www.newthinktank.com/2019/10/c-tutorial-2019/ To celebrate my 1 Million subscribers I decided to update my most popular video! This is a 1,000 page book on C++ condensed down to a 2 hour video. It was 5 hours long before editing. You can see a brief list of what is covered in the table of contents below. For best results get the free code provided below and pause your way through the video while typing out the code. Thank you for subscribing to my little channel! I greatly appreciate all of the wonderful people I have met on YouTube. Like the channel? Consider becoming a Patreon and get access to exclusive videos! Check it out here: https://www.patreon.com/derekbanas GET FREE STUFF FOR SUPPORTING MY TUTORIALS 1. Get a Free Stock : share.robinhood.com/derekb1560 2. Get 2 Free Audiobooks : https://amzn.to/2Y5FV2p THANK YOU TO MY PATREON SUPPORTERS LIKE : ckcoder.com vsolutions.be instagram.com/lumarycodes/ github.com/metabake greedygammon.com 0:00:32 Basics 0:01:21 Comments 0:01:40 Libraries 0:02:50 Namespace std 0:03:03 Cout / Endl 0:04:12 Main 0:05:18 Variables 0:05:30 Global Variables 0:05:51 Constants 0:06:12 Data Types 0:08:32 Float Precision 0:09:00 Printf 0:10:01 Auto 0:12:16 Cin 0:12:50 Casting 0:13:00 Math Operators 0:14:12 Conditional / Logical Operators 0:14:27 If / Else If / Else 0:16:30 Ternary Operator 0:17:40 Arrays 0:20:51 Vectors 0:21:55 While Loop 0:22:35 Break / Continue 0:24:19 String Stream 0:24:56 Getline 0:25:25 For Loop 0:27:10 Random 0:27:50 Do While 0:29:04 Strings 0:32:35 Character Functions 0:34:13 Math Functions 0:35:06 Functions 0:41:00 Pointers 0:47:25 Exception Handling 0:49:17 Classes / Objects 0:50:37 Header File 0:50:59 Private / Protected / Public 0:52:44 Static 0:53:22 Constructor 0:53:39 Overloading Functions 0:54:05 Deconstructor 0:54:22 Setters / Getters 0:55:30 Static Methods 0:55:51 Virtual 0:56:40 Implementation File 0:57:17 This 0:57:48 Pointer Operator 1:00:23 Polymorphism 1:01:32 Inheritance 1:03:12 Call Super Functions 1:04:04 Creating Objects 1:06:25 Abstract Classes 1:07:30 Override 1:08:36 Structs 1:11:56 Operator Overloading 1:18:24 Lambda Expressions 1:22:37 For_Each 1:23:35 File IO 1:28:00 Functions as Objects 1:30:57 Macros 1:31:56 Template Functions 1:34:50 Template Classes 1:37:18 Double Ended Queue 1:39:04 Iterators 1:42:27 Malloc / Memory Management 1:45:24 Smart Pointers 1:46:53 Threads 1:48:13 Time Functions 1:53:00 Deques 1:57:04 Lists 2:02:45 Forward List 2:05:54 Sets 2:09:30 Multisets 2:10:32 Map 2:13:21 Multimaps 2:13:40 Stack 2:15:11 Queue 2:16:24 Priority Queues 2:17:26 Enums 2:19:04 Regular Expressions More Regular Expression Tutorials : https://youtu.be/9K4N6MO_R1Y

detail
{'title': 'C++ Tutorial : C++ Full Course', 'heatmap': [{'end': 1201.987, 'start': 1112.123, 'weight': 1}], 'summary': 'This c++ tutorial video celebrates reaching 1 million subscribers and offers a comprehensive guide, covering application setup, basics, conditional operators, arrays, vectors, functions, exception handling, object-oriented programming, features, lambda expressions, file i/o, libraries, programming concepts, and practical implementations.', 'chapters': [{'end': 47.697, 'segs': [{'end': 47.697, 'src': 'embed', 'start': 0.828, 'weight': 0, 'content': [{'end': 5.951, 'text': 'Well hello Internet and welcome to my new and improved C++ tutorial.', 'start': 0.828, 'duration': 5.123}, {'end': 12.795, 'text': 'To celebrate getting to 1 million subscribers I decided to remake my most popular video.', 'start': 6.291, 'duration': 6.504}, {'end': 16.918, 'text': 'This is basically a thousand plus page book all crammed into one video.', 'start': 12.855, 'duration': 4.063}, {'end': 22.001, 'text': 'You can find underneath the video a table of contents to jump to exactly what you want to learn.', 'start': 16.978, 'duration': 5.023}, {'end': 24.743, 'text': 'In the description is a link to all the code.', 'start': 22.441, 'duration': 2.302}, {'end': 30.248, 'text': 'as well as an installation video if you want to have the exact same setup as me.', 'start': 25.265, 'duration': 4.983}, {'end': 32.409, 'text': "And I have a lot to do, so let's get into it.", 'start': 30.408, 'duration': 2.001}, {'end': 40.173, 'text': 'All right, so everything here is going to work exactly the same on Windows as well as on Mac and Linux and everything.', 'start': 32.729, 'duration': 7.444}, {'end': 43.435, 'text': "I decided to use NetBeans because it's very easy to install.", 'start': 40.233, 'duration': 3.202}, {'end': 47.697, 'text': "What we're going to do to start off is go to File and New Project.", 'start': 43.475, 'duration': 4.222}], 'summary': 'C++ tutorial celebrating 1 million subscribers, covering a thousand plus page book worth of content with accessible table of contents and code link.', 'duration': 46.869, 'max_score': 0.828, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU0828.jpg'}], 'start': 0.828, 'title': 'C++ tutorial remake for 1 million subscribers', 'summary': 'Highlights the remake of a c++ tutorial to celebrate reaching 1 million subscribers, offering a comprehensive guide in one video with a table of contents, code links, and installation instructions for windows, mac, and linux using netbeans.', 'chapters': [{'end': 47.697, 'start': 0.828, 'title': 'C++ tutorial remake for 1 million subscribers', 'summary': 'Highlights the remake of a c++ tutorial to celebrate reaching 1 million subscribers, offering a comprehensive guide in one video with a table of contents, code links, and installation instructions for windows, mac, and linux using netbeans.', 'duration': 46.869, 'highlights': ['The tutorial is a remake to celebrate reaching 1 million subscribers, condensing a thousand plus page book into one video.', 'The video includes a table of contents for easy navigation and code links in the description.', 'Installation instructions for Windows, Mac, and Linux using NetBeans are provided, making it easy to set up the exact same environment as the presenter.']}], 'duration': 46.869, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU0828.jpg', 'highlights': ['The tutorial is a remake to celebrate reaching 1 million subscribers, condensing a thousand plus page book into one video.', 'The video includes a table of contents for easy navigation and code links in the description.', 'Installation instructions for Windows, Mac, and Linux using NetBeans are provided, making it easy to set up the exact same environment as the presenter.']}, {'end': 974.782, 'segs': [{'end': 76.16, 'src': 'embed', 'start': 48.017, 'weight': 5, 'content': [{'end': 50.938, 'text': "I'm going to pick that I want a C++ application.", 'start': 48.017, 'duration': 2.921}, {'end': 51.859, 'text': 'Click on Next.', 'start': 51.038, 'duration': 0.821}, {'end': 54.181, 'text': "I'm going to call this CPP Tut.", 'start': 52.259, 'duration': 1.922}, {'end': 55.462, 'text': 'Click on Finish.', 'start': 54.501, 'duration': 0.961}, {'end': 59.125, 'text': 'Make sure I have C++14 selected here.', 'start': 56.143, 'duration': 2.982}, {'end': 60.727, 'text': 'Everything else should be fine.', 'start': 59.465, 'duration': 1.262}, {'end': 65.971, 'text': 'Make sure you have a check mark here where it says do you want to generate a main file and click on Finish.', 'start': 60.767, 'duration': 5.204}, {'end': 69.554, 'text': "Now what you're going to want to do is go over here where it says CPP Tut.", 'start': 66.411, 'duration': 3.143}, {'end': 73.197, 'text': 'Click on Source Files and here is Main CPP.', 'start': 69.734, 'duration': 3.463}, {'end': 76.16, 'text': 'Open that up by right clicking on it and clicking Open.', 'start': 73.558, 'duration': 2.602}], 'summary': "Creating a c++ application named 'cpp tut' with c++14, generating a main file, and opening it for editing.", 'duration': 28.143, 'max_score': 48.017, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU048017.jpg'}, {'end': 158.534, 'src': 'embed', 'start': 131.658, 'weight': 0, 'content': [{'end': 136.462, 'text': "I'm also going to get string, which is going to allow us to work with strings.", 'start': 131.658, 'duration': 4.804}, {'end': 143.588, 'text': "I'm going to get limits, which are going to provide functions so I can show you the minimum and max values for data types.", 'start': 137.042, 'duration': 6.546}, {'end': 148.103, 'text': 'Vector, so I can work with vectors, which I will explain in detail later.', 'start': 144.099, 'duration': 4.004}, {'end': 153.689, 'text': "Sstream, which is going to allow me to work with string streams, which I'll cover later as well.", 'start': 148.123, 'duration': 5.566}, {'end': 158.534, 'text': 'Numeric, which is going to allow me to work with sequences of values.', 'start': 154.189, 'duration': 4.345}], 'summary': 'Acquiring libraries for string, limits, vector, sstream, and numeric for data manipulation.', 'duration': 26.876, 'max_score': 131.658, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU0131658.jpg'}, {'end': 236.382, 'src': 'embed', 'start': 184.114, 'weight': 1, 'content': [{'end': 188.576, 'text': 'See out allows us to output information to our console.', 'start': 184.114, 'duration': 4.462}, {'end': 193.199, 'text': 'And I could just go like this and then follow that up with hello world.', 'start': 188.977, 'duration': 4.222}, {'end': 197.09, 'text': 'and end that with end L and a semicolon.', 'start': 193.928, 'duration': 3.162}, {'end': 201.994, 'text': 'This guy right here is known as the stream insertion operator.', 'start': 197.491, 'duration': 4.503}, {'end': 210.28, 'text': "And what it's going to do is take this string that you have right here and it's going to put it into the cout stream,", 'start': 202.314, 'duration': 7.966}, {'end': 211.981, 'text': 'which is going to display it on your screen.', 'start': 210.28, 'duration': 1.701}, {'end': 220.788, 'text': "And then finally here we have endel and what it's going to do is both issue a new line as well as force a write to our console.", 'start': 212.341, 'duration': 8.447}, {'end': 226.834, 'text': 'But since I have using namespace standard right here, what I can do is get rid of this,', 'start': 221.149, 'duration': 5.685}, {'end': 231.998, 'text': 'because this line of code right here is saying that we want to use the standard namespace,', 'start': 226.834, 'duration': 5.164}, {'end': 236.382, 'text': 'which basically just means that we can avoid typing in standard every single time.', 'start': 231.998, 'duration': 4.384}], 'summary': "Using 'cout' to output 'hello world' to console, utilizing stream insertion operator and 'endl'.", 'duration': 52.268, 'max_score': 184.114, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU0184114.jpg'}, {'end': 375.432, 'src': 'embed', 'start': 351.318, 'weight': 7, 'content': [{'end': 359.981, 'text': 'If you would like to create a constant, which is a variable whose value cannot change, just type in CONST.', 'start': 351.318, 'duration': 8.663}, {'end': 366.903, 'text': "I'm saying this is a double, which means that this is going to be a value that does have decimal places.", 'start': 360.481, 'duration': 6.422}, {'end': 369.343, 'text': 'And I could type something like 3.141, for example.', 'start': 367.183, 'duration': 2.16}, {'end': 375.432, 'text': "Okay, so now let's talk about variables and data types.", 'start': 371.869, 'duration': 3.563}], 'summary': 'Introduction to creating constants and using double data type.', 'duration': 24.114, 'max_score': 351.318, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU0351318.jpg'}, {'end': 424.364, 'src': 'embed', 'start': 395.585, 'weight': 4, 'content': [{'end': 407.152, 'text': 'Booleans, which you define with bool like that, followed with a variable, can have a value of true, or the number 1, or false, being the number 0.', 'start': 395.585, 'duration': 11.567}, {'end': 412.595, 'text': 'Characters, which you define with char and migrate in this situation.', 'start': 407.152, 'duration': 5.443}, {'end': 419.501, 'text': 'Whoops, forgot to put the equal sign here are going to be able to store 256 single characters,', 'start': 412.616, 'duration': 6.885}, {'end': 424.364, 'text': 'which are represented by the keys on your keyboard and can be created as you see.', 'start': 419.501, 'duration': 4.863}], 'summary': 'Booleans can be true or false, characters can store 256 single characters.', 'duration': 28.779, 'max_score': 395.585, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU0395585.jpg'}, {'end': 535.206, 'src': 'embed', 'start': 512.136, 'weight': 2, 'content': [{'end': 520.22, 'text': 'One thing that is very important to understand, however, is that different floating point data types are only accurate to a certain number of digits,', 'start': 512.136, 'duration': 8.084}, {'end': 523.482, 'text': 'even though they say they can hold extremely large values.', 'start': 520.22, 'duration': 3.262}, {'end': 527.803, 'text': 'So, for example, if I would create float F1 equal to,', 'start': 524.102, 'duration': 3.701}, {'end': 535.206, 'text': "and I'm going to put in seven ones inside of here and you're going to see that floats are only accurate up to six digits.", 'start': 527.803, 'duration': 7.403}], 'summary': 'Floating point data types are accurate up to six digits.', 'duration': 23.07, 'max_score': 512.136, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU0512135.jpg'}], 'start': 48.017, 'title': 'C++ application setup and basics', 'summary': "Covers setting up a c++ application, including selecting c++14 and importing necessary libraries, creating a basic 'hello world' program, learning c++ basics such as variable declaration, function structure, data types, global variables and constants, booleans, and characters, as well as data types and operators including integer and floating point data types, basic calculations, conditional operators, working with strings, and receiving user input.", 'chapters': [{'end': 236.382, 'start': 48.017, 'title': 'Setting up a c++ application and basic program structure', 'summary': "Covers setting up a c++ application, including selecting c++14, importing necessary libraries (e.g., c standard library, iostream, string, limits, vector, sstream, numeric, ctime, cmath), and creating a basic 'hello world' program with explanations of key concepts and functions.", 'duration': 188.365, 'highlights': ['Importing necessary libraries like C standard library, iostream, string, limits, vector, sstream, and others to work with different data types and functionalities.', "Explaining the purpose of using namespace standard and its role in simplifying code by avoiding repetitive use of 'std'.", "Creating a basic 'hello world' program using cout to output information to the console and explaining the stream insertion operator and its functionality.", 'Detailing the process of setting up a C++ application, including selecting C++14 and generating a main file to establish the basic program structure.']}, {'end': 424.364, 'start': 236.758, 'title': 'Learning c++ basics', 'summary': 'Covers the basics of c++ programming, including variable declaration, function structure, and data types, emphasizing the importance of global variables and constants, and providing an overview of booleans and characters as data types, as well as their respective values.', 'duration': 187.606, 'highlights': ['Global variables and constants are explained, with an example of declaring a global variable and creating a constant. example of declaring a global variable, explanation of creating a constant', 'A detailed explanation of variables and data types is provided, including the rules for naming variables and the memory allocation for different data types. rules for naming variables, memory allocation for different data types', 'An overview of booleans and characters as data types is presented, emphasizing their values and how they are defined. overview of booleans and characters, emphasis on their values and definitions']}, {'end': 974.782, 'start': 424.725, 'title': 'Data types and operators', 'summary': 'Covers various integer and floating point data types, their accuracy, precision, and usage in c++ programming, along with demonstrations of basic calculations and conditional operators. it also explains how to work with strings and receive user input. the chapter concludes with examples of conditional operators for executing different code based on defined conditions.', 'duration': 550.057, 'highlights': ['The chapter covers various integer and floating point data types, their accuracy, precision, and usage in C++ programming, along with demonstrations of basic calculations and conditional operators.', 'It explains how to work with strings and receive user input, including converting strings into integers for performing calculations.', 'It demonstrates the usage of conditional operators for executing different code based on defined conditions, such as determining important birthdays based on age.']}], 'duration': 926.765, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU048017.jpg', 'highlights': ['Importing necessary libraries like C standard library, iostream, string, limits, vector, sstream, and others to work with different data types and functionalities.', "Creating a basic 'hello world' program using cout to output information to the console and explaining the stream insertion operator and its functionality.", 'The chapter covers various integer and floating point data types, their accuracy, precision, and usage in C++ programming, along with demonstrations of basic calculations and conditional operators.', "Explaining the purpose of using namespace standard and its role in simplifying code by avoiding repetitive use of 'std'.", 'An overview of booleans and characters as data types is presented, emphasizing their values and how they are defined.', 'Detailing the process of setting up a C++ application, including selecting C++14 and generating a main file to establish the basic program structure.', 'It explains how to work with strings and receive user input, including converting strings into integers for performing calculations.', 'Global variables and constants are explained, with an example of declaring a global variable and creating a constant.']}, {'end': 2111.876, 'segs': [{'end': 1009.336, 'src': 'embed', 'start': 975.022, 'weight': 0, 'content': [{'end': 978.563, 'text': 'So I could say something like 43, not an important birthday.', 'start': 975.022, 'duration': 3.541}, {'end': 985.004, 'text': 'I can run it again, and I could say for important birthday, and so forth and so on.', 'start': 979.023, 'duration': 5.981}, {'end': 989.925, 'text': "So that's how we use the conditional logical operators as well as if else and else.", 'start': 985.044, 'duration': 4.881}, {'end': 997.032, 'text': 'Now the ternary operator is going to work kind of like a compact if or else if statement.', 'start': 990.723, 'duration': 6.309}, {'end': 999.395, 'text': "So I'll go and define age 43 is equal to 43.", 'start': 997.092, 'duration': 2.303}, {'end': 1000.436, 'text': "Then I'm going to define a bool.", 'start': 999.395, 'duration': 1.041}, {'end': 1009.336, 'text': "And I'm going to assign it the value that is going to be determined by a condition.", 'start': 1003.789, 'duration': 5.547}], 'summary': 'Demonstrating the use of conditional operators and ternary operator to assign values based on conditions.', 'duration': 34.314, 'max_score': 975.022, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU0975022.jpg'}, {'end': 1201.987, 'src': 'heatmap', 'start': 1112.123, 'weight': 1, 'content': [{'end': 1115.266, 'text': "And let's go and just throw eight and nine inside of it.", 'start': 1112.123, 'duration': 3.143}, {'end': 1120.047, 'text': "Now you're going to be able to access these different array values.", 'start': 1115.746, 'duration': 4.301}, {'end': 1124.228, 'text': "Let's say that I want to get the very first value stored inside of the array.", 'start': 1120.087, 'duration': 4.141}, {'end': 1126.928, 'text': "Just go and list the array's name.", 'start': 1124.928, 'duration': 2}, {'end': 1134.25, 'text': 'And then if you want the very first one, each with these values inside of the array are going to have index numbers assigned to them.', 'start': 1126.948, 'duration': 7.302}, {'end': 1136.65, 'text': 'So this one in this situation will be zero.', 'start': 1134.33, 'duration': 2.32}, {'end': 1139.871, 'text': 'Then the index for this is one, two, and so forth and so on.', 'start': 1136.73, 'duration': 3.141}, {'end': 1142.786, 'text': 'And you can see we were able to get that value out of it.', 'start': 1140.484, 'duration': 2.302}, {'end': 1150.113, 'text': "You'd also be able to come in here and change values just by referring to the different index values as well.", 'start': 1143.167, 'duration': 6.946}, {'end': 1155.899, 'text': "So let's say I wanted to go and change the very first index to the value of seven.", 'start': 1150.614, 'duration': 5.285}, {'end': 1156.82, 'text': 'I can do that.', 'start': 1156.159, 'duration': 0.661}, {'end': 1160.518, 'text': 'And then if we print this out again, You see that it changes.', 'start': 1156.84, 'duration': 3.678}, {'end': 1164.58, 'text': 'We can also create what are called multidimensional arrays.', 'start': 1160.958, 'duration': 3.622}, {'end': 1170.103, 'text': "So let's create an integer here, array, nums, and 4.", 'start': 1165.16, 'duration': 4.943}, {'end': 1173.866, 'text': "To do that, you're going to define how many in this situation.", 'start': 1170.103, 'duration': 3.763}, {'end': 1177.468, 'text': 'The very first number is going to be how many layers.', 'start': 1173.966, 'duration': 3.502}, {'end': 1180.97, 'text': 'So you can think of this almost as like a spreadsheet.', 'start': 1177.968, 'duration': 3.002}, {'end': 1186.293, 'text': "And then let's say you had different spreadsheet values and rows and columns and such.", 'start': 1181.27, 'duration': 5.023}, {'end': 1193.319, 'text': 'On multiple pieces of paper, this first value is going to be the number of pieces of paper or the number of layers.', 'start': 1186.713, 'duration': 6.606}, {'end': 1198.484, 'text': 'The very next one is going to be a number of columns on each layer.', 'start': 1193.94, 'duration': 4.544}, {'end': 1201.987, 'text': "And then finally, you're going to define how many rows.", 'start': 1198.884, 'duration': 3.103}], 'summary': 'The transcript explains array manipulation and creation, including multidimensional arrays.', 'duration': 89.864, 'max_score': 1112.123, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU01112123.jpg'}, {'end': 1170.103, 'src': 'embed', 'start': 1140.484, 'weight': 1, 'content': [{'end': 1142.786, 'text': 'And you can see we were able to get that value out of it.', 'start': 1140.484, 'duration': 2.302}, {'end': 1150.113, 'text': "You'd also be able to come in here and change values just by referring to the different index values as well.", 'start': 1143.167, 'duration': 6.946}, {'end': 1155.899, 'text': "So let's say I wanted to go and change the very first index to the value of seven.", 'start': 1150.614, 'duration': 5.285}, {'end': 1156.82, 'text': 'I can do that.', 'start': 1156.159, 'duration': 0.661}, {'end': 1160.518, 'text': 'And then if we print this out again, You see that it changes.', 'start': 1156.84, 'duration': 3.678}, {'end': 1164.58, 'text': 'We can also create what are called multidimensional arrays.', 'start': 1160.958, 'duration': 3.622}, {'end': 1170.103, 'text': "So let's create an integer here, array, nums, and 4.", 'start': 1165.16, 'duration': 4.943}], 'summary': 'Demonstrating array manipulation and creation in python.', 'duration': 29.619, 'max_score': 1140.484, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU01140484.jpg'}, {'end': 1265.832, 'src': 'embed', 'start': 1238.223, 'weight': 2, 'content': [{'end': 1242.507, 'text': 'We want to get the first column and the first row.', 'start': 1238.223, 'duration': 4.284}, {'end': 1246.691, 'text': "Run it, and you can see we're able to get four, which is this guy right here.", 'start': 1242.987, 'duration': 3.704}, {'end': 1251.456, 'text': "OK, so I'll cover more on arrays as the tutorial continues.", 'start': 1247.031, 'duration': 4.425}, {'end': 1253.278, 'text': 'But now I want to talk about vectors.', 'start': 1251.556, 'duration': 1.722}, {'end': 1259.084, 'text': "Now you're going to use vectors whenever you don't know how big or the size of your array.", 'start': 1253.779, 'duration': 5.305}, {'end': 1262.889, 'text': "So we'll go and create a vector just by typing in vector.", 'start': 1259.685, 'duration': 3.204}, {'end': 1265.832, 'text': "I'm going to define I want an integer vector.", 'start': 1263.369, 'duration': 2.463}], 'summary': 'Covering arrays and vectors, using vector for dynamic array sizing in the tutorial', 'duration': 27.609, 'max_score': 1238.223, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU01238223.jpg'}, {'end': 1335.35, 'src': 'embed', 'start': 1309.592, 'weight': 3, 'content': [{'end': 1318.517, 'text': 'OK So once again, more on vectors as the tutorial continues, but before I can really cover them in detail, I have to first cover looping.', 'start': 1309.592, 'duration': 8.925}, {'end': 1324.762, 'text': 'Now a while loop is going to continue executing as long as a condition is true.', 'start': 1319.018, 'duration': 5.744}, {'end': 1335.35, 'text': "And one thing that you'll almost always have to do is to have the variable that's used in your while condition defined before you call for the while loop to execute.", 'start': 1325.162, 'duration': 10.188}], 'summary': 'Tutorial covers looping in programming, emphasizing the use of while loops and pre-defined variables.', 'duration': 25.758, 'max_score': 1309.592, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU01309592.jpg'}, {'end': 1839.145, 'src': 'embed', 'start': 1809.556, 'weight': 4, 'content': [{'end': 1811.677, 'text': 'We would be able to combine strings.', 'start': 1809.556, 'duration': 2.121}, {'end': 1818.822, 'text': "str4 is equal to str1 and say something like and you're not.", 'start': 1812.398, 'duration': 6.424}, {'end': 1823.212, 'text': 'We would be able to append to the end of a string.', 'start': 1819.329, 'duration': 3.883}, {'end': 1826.154, 'text': 'So we can throw like an exclamation mark inside of there.', 'start': 1823.232, 'duration': 2.922}, {'end': 1827.755, 'text': 'We can go and run this.', 'start': 1826.734, 'duration': 1.021}, {'end': 1830.637, 'text': 'You can see, got the first, got the last, got the length.', 'start': 1828.195, 'duration': 2.442}, {'end': 1833.16, 'text': 'We would also be able to erase characters.', 'start': 1831.018, 'duration': 2.142}, {'end': 1839.145, 'text': "So let's say we wanted to erase characters from a string starting at the first index.", 'start': 1833.22, 'duration': 5.925}], 'summary': 'Demonstrates string manipulation: combining, appending, erasing characters.', 'duration': 29.589, 'max_score': 1809.556, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU01809556.jpg'}, {'end': 2111.876, 'src': 'embed', 'start': 2070.976, 'weight': 5, 'content': [{'end': 2076.52, 'text': 'you would use absolute values, mins and maxes and float mins and maxes, ceilings and floors.', 'start': 2070.976, 'duration': 5.544}, {'end': 2079.762, 'text': "And if I run this, you're going to see exactly how they work.", 'start': 2076.94, 'duration': 2.822}, {'end': 2083.164, 'text': 'So there is all of those different functions run for you.', 'start': 2080.022, 'duration': 3.142}, {'end': 2088.886, 'text': 'And you can see, we have the ability to work with exponents and multiple different types of logs,', 'start': 2083.623, 'duration': 5.263}, {'end': 2094.328, 'text': 'as well as hypotenuse and all of these trig functions that are extremely useful.', 'start': 2088.886, 'duration': 5.442}, {'end': 2099.59, 'text': 'And like I said, you can pause your screen to check those out, but they all work pretty logically.', 'start': 2094.728, 'duration': 4.862}, {'end': 2103.111, 'text': "So I didn't want to waste any time talking too much about them.", 'start': 2099.79, 'duration': 3.321}, {'end': 2105.812, 'text': 'even though they are quite useful and important.', 'start': 2103.631, 'duration': 2.181}, {'end': 2109.695, 'text': 'And now I want to talk about creating your own custom functions.', 'start': 2106.133, 'duration': 3.562}, {'end': 2111.876, 'text': "So now we're going to create our own functions.", 'start': 2109.735, 'duration': 2.141}], 'summary': 'Demonstration of using various mathematical functions and creating custom functions in the transcript.', 'duration': 40.9, 'max_score': 2070.976, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU02070976.jpg'}], 'start': 975.022, 'title': 'C++ basics', 'summary': 'Covers conditional operators, arrays, vectors, looping, and functions in c++, including examples of logical operators, array manipulation, and loop structures, providing a comprehensive introduction to c++ fundamentals.', 'chapters': [{'end': 1025.183, 'start': 975.022, 'title': 'Conditional operators and ternary operator', 'summary': 'Introduces the use of conditional logical operators, if-else statements, and the ternary operator to assign values based on conditions, demonstrating with an example of determining the value of a boolean variable based on an age condition.', 'duration': 50.161, 'highlights': ['The chapter introduces the use of conditional logical operators, if-else statements, and the ternary operator.', 'A practical example is demonstrated using the age condition to determine the value of a boolean variable.', 'Explanation of how the ternary operator functions as a compact if-else statement.']}, {'end': 1309.572, 'start': 1025.242, 'title': 'Arrays, vectors and data storage', 'summary': 'Covers arrays and vectors in c++, discussing how to define, access, and manipulate array values, as well as the use of vectors for dynamic array sizes, with examples showcasing the storage and retrieval of data in both structures.', 'duration': 284.33, 'highlights': ['Arrays are collections of data of the same data type, with defined sizes that cannot be changed once set. Arrays in C++ are collections of data of the same data type, with defined sizes that cannot be changed once set, allowing for the storage and retrieval of specific values based on index numbers.', 'Arrays support multidimensional structures, allowing for the creation of arrays with multiple layers, columns, and rows, and the ability to access specific parts of the array based on the defined structure. Arrays in C++ support multidimensional structures, enabling the creation of arrays with multiple layers, columns, and rows, and the retrieval of specific values based on the defined structure, providing flexibility in data storage and retrieval.', 'Vectors are used in C++ when the size of the array is unknown, allowing for dynamic resizing and storage of data. Vectors in C++ are utilized when the size of the array is unknown, enabling dynamic resizing and storage of data, providing flexibility for situations where the array size may vary during runtime.']}, {'end': 2111.876, 'start': 1309.592, 'title': 'Covering looping and functions in c++', 'summary': 'Covers while loops, for loops, do while loops, strings, character functions, and basic math functions in c++ with examples, and also introduces the creation of custom functions.', 'duration': 802.284, 'highlights': ['The tutorial covers while loops, for loops, and do while loops with examples. It explains the functionality and usage of while loops, for loops, and do while loops in C++ with examples and explanations.', 'Demonstrates the manipulation and operations on strings, including copying, combining, appending, erasing, finding, and converting. It covers various string operations such as copying, combining, appending, erasing, finding, and converting strings in C++ with practical examples.', 'Introduces character functions and demonstrates how to check if a character is a letter, number, space, or digit. It explains character functions in C++ and demonstrates how to check if a character is a letter, number, space, or digit with examples.', 'Covers basic math functions such as absolute values, mins, maxes, ceilings, floors, exponents, logarithms, hypotenuse, and trigonometric functions. It covers various basic math functions in C++ such as absolute values, mins, maxes, ceilings, floors, exponents, logarithms, hypotenuse, and trigonometric functions with examples.', 'Introduces the creation of custom functions in C++. It introduces the concept of creating custom functions in C++ and briefly explains its usage and importance.']}], 'duration': 1136.854, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU0975022.jpg', 'highlights': ['Covers conditional logical operators, if-else statements, and the ternary operator.', 'Arrays support multidimensional structures, enabling the creation of arrays with multiple layers, columns, and rows.', 'Vectors in C++ are utilized when the size of the array is unknown, enabling dynamic resizing and storage of data.', 'It explains the functionality and usage of while loops, for loops, and do while loops in C++ with examples and explanations.', 'Covers various string operations such as copying, combining, appending, erasing, finding, and converting strings in C++ with practical examples.', 'It covers various basic math functions in C++ such as absolute values, mins, maxes, ceilings, floors, exponents, logarithms, hypotenuse, and trigonometric functions with examples.', 'It introduces the concept of creating custom functions in C++ and briefly explains its usage and importance.']}, {'end': 2911.601, 'segs': [{'end': 2137.598, 'src': 'embed', 'start': 2111.936, 'weight': 1, 'content': [{'end': 2118.019, 'text': 'Now C++ is different than some other languages in that we are going to have to define function prototypes.', 'start': 2111.936, 'duration': 6.083}, {'end': 2118.94, 'text': "So let's create one.", 'start': 2118.079, 'duration': 0.861}, {'end': 2124.443, 'text': "What we're going to do here is we're going to define first the data type that this function is going to return.", 'start': 2119.38, 'duration': 5.063}, {'end': 2128.13, 'text': "We're then going to define the name for the function.", 'start': 2125.148, 'duration': 2.982}, {'end': 2137.598, 'text': "We're then going to define both the name as well as the data type for the two parameters that can be passed to this function.", 'start': 2128.551, 'duration': 9.047}], 'summary': 'C++ requires defining function prototypes with return type, function name, and parameter details.', 'duration': 25.662, 'max_score': 2111.936, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU02111936.jpg'}, {'end': 2180.412, 'src': 'embed', 'start': 2153.775, 'weight': 2, 'content': [{'end': 2161.565, 'text': 'And what this function is going to do is, well, we could come in here and define some default values if we would like inside of our function.', 'start': 2153.775, 'duration': 7.79}, {'end': 2165.691, 'text': "And that means if a value is not passed, that's what's going to be assigned.", 'start': 2161.585, 'duration': 4.106}, {'end': 2172.346, 'text': "And then inside of the function we can return, we don't have to, but we can return a value.", 'start': 2166.161, 'duration': 6.185}, {'end': 2174.207, 'text': 'And that value will be a double.', 'start': 2172.806, 'duration': 1.401}, {'end': 2180.412, 'text': 'Then what we can do inside of main is actually call for that function to work for us.', 'start': 2174.487, 'duration': 5.925}], 'summary': 'Function defines default values, returns a double, and can be called in main.', 'duration': 26.637, 'max_score': 2153.775, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU02153775.jpg'}, {'end': 2241.234, 'src': 'embed', 'start': 2217.17, 'weight': 5, 'content': [{'end': 2224.535, 'text': 'Now one thing that confuses people about functions is how they pass data around between each other.', 'start': 2217.17, 'duration': 7.365}, {'end': 2227.457, 'text': "So let's say we want to create a function.", 'start': 2224.936, 'duration': 2.521}, {'end': 2229.719, 'text': 'It is not going to return anything.', 'start': 2227.798, 'duration': 1.921}, {'end': 2231, 'text': "That's what void means.", 'start': 2229.779, 'duration': 1.221}, {'end': 2237.372, 'text': 'However, what we want it to do is to assign a value to a variable called main.', 'start': 2231.65, 'duration': 5.722}, {'end': 2239.933, 'text': "It's not going to receive anything.", 'start': 2237.392, 'duration': 2.541}, {'end': 2241.234, 'text': "It's just going to do that.", 'start': 2239.993, 'duration': 1.241}], 'summary': 'Explaining passing data between functions, using void function to assign value to variable main.', 'duration': 24.064, 'max_score': 2217.17, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU02217170.jpg'}, {'end': 2303.269, 'src': 'embed', 'start': 2273.39, 'weight': 4, 'content': [{'end': 2274.53, 'text': 'the name.', 'start': 2273.39, 'duration': 1.14}, {'end': 2275.931, 'text': 'seems simple enough, right?', 'start': 2274.53, 'duration': 1.401}, {'end': 2279.432, 'text': "well, let's run it and you can see that we get an error.", 'start': 2275.931, 'duration': 3.501}, {'end': 2283.59, 'text': 'it says use of a undeclared identifier name.', 'start': 2279.432, 'duration': 4.158}, {'end': 2286.772, 'text': 'But we declared it inside of the function, you may say.', 'start': 2283.95, 'duration': 2.822}, {'end': 2287.593, 'text': "No, you didn't.", 'start': 2286.952, 'duration': 0.641}, {'end': 2297.686, 'text': 'Any value that is created inside or variable created inside of a function is considered a local variable, meaning that whenever the function ends,', 'start': 2288.681, 'duration': 9.005}, {'end': 2303.269, 'text': "so does this variable's value and itself ceases to exist.", 'start': 2297.686, 'duration': 5.583}], 'summary': 'Local variables cease to exist after the function ends, causing an undeclared identifier error.', 'duration': 29.879, 'max_score': 2273.39, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU02273390.jpg'}, {'end': 2474.481, 'src': 'embed', 'start': 2449.824, 'weight': 0, 'content': [{'end': 2458.408, 'text': "Well, there is actually a better way where we can actually pass the variable's location in memory and access it and change it at will,", 'start': 2449.824, 'duration': 8.584}, {'end': 2459.029, 'text': 'if we would like.', 'start': 2458.408, 'duration': 0.621}, {'end': 2461.21, 'text': 'But to do so, we need to use pointers.', 'start': 2459.169, 'duration': 2.041}, {'end': 2464.071, 'text': "Pointers sound very scary, but they're really not.", 'start': 2461.77, 'duration': 2.301}, {'end': 2468.333, 'text': 'A pointer just stores an address in memory.', 'start': 2464.591, 'duration': 3.742}, {'end': 2474.481, 'text': 'So you declare a pointer to be the same type as the data type to which it points.', 'start': 2468.777, 'duration': 5.704}], 'summary': 'Using pointers allows accessing and changing variable locations in memory easily.', 'duration': 24.657, 'max_score': 2449.824, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU02449824.jpg'}, {'end': 2858.122, 'src': 'embed', 'start': 2833.203, 'weight': 3, 'content': [{'end': 2839.208, 'text': 'And now you can see we were able to directly go in and double the values inside of those array members.', 'start': 2833.203, 'duration': 6.005}, {'end': 2847.08, 'text': "So pretty cool stuff, and we'll be doing more with pointers in the future, but now I want to talk about exception handling.", 'start': 2839.958, 'duration': 7.122}, {'end': 2852.081, 'text': "Now exceptions are just errors that occur when things don't go as expected.", 'start': 2847.54, 'duration': 4.541}, {'end': 2858.122, 'text': "So what we're going to do here is we're going to trigger a division by zero error.", 'start': 2852.101, 'duration': 6.021}], 'summary': 'Doubled array values, discussed pointers, and triggered division by zero error for exception handling.', 'duration': 24.919, 'max_score': 2833.203, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU02833203.jpg'}], 'start': 2111.936, 'title': 'C++ function prototypes and pointers with exception handling', 'summary': 'Covers c++ function prototypes, default values, local variables, and data passing. it also explains pointers for manipulating variable values and exception handling with a division by zero error and its resolution using try and catch blocks and throw statements.', 'chapters': [{'end': 2297.686, 'start': 2111.936, 'title': 'C++ function prototypes and data passing', 'summary': 'Explains the process of defining function prototypes in c++, creating functions with default values, and the concept of local variables, providing a practical example of calling functions and passing data between them.', 'duration': 185.75, 'highlights': ['The chapter explains the process of defining function prototypes in C++ It discusses the unique aspect of defining function prototypes in C++', "creating functions with default values, and that means if a value is not passed, that's what's going to be assigned It demonstrates creating functions with default values, allowing for values to be assigned if not passed", "the concept of local variables, meaning that whenever the function ends, the variable is no longer accessible It explains the concept of local variables, which are only accessible within the function's scope", 'providing a practical example of calling functions and passing data between them It provides a practical example of calling functions and passing data between them']}, {'end': 2911.601, 'start': 2297.686, 'title': 'Understanding pointers and exception handling in c++', 'summary': 'Discusses the usage of pointers in c++ to manipulate variable values by passing memory locations, as well as demonstrating exception handling through a division by zero error and its resolution using try and catch blocks and throw statements.', 'duration': 613.915, 'highlights': ['The chapter explains the concept of pointers in C++ and how they can be used to pass memory locations and change variable values at will, illustrating the process with examples, such as assigning age values using pointers and dereference operators.', 'It demonstrates how to handle exceptions using try and catch blocks, throwing a custom error message when a division by zero error occurs, and providing a solution for the division problem when the denominator is not zero.']}], 'duration': 799.665, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU02111936.jpg', 'highlights': ['The chapter explains the concept of pointers in C++ and how they can be used to pass memory locations and change variable values at will, illustrating the process with examples, such as assigning age values using pointers and dereference operators.', 'The chapter explains the process of defining function prototypes in C++ It discusses the unique aspect of defining function prototypes in C++', "creating functions with default values, and that means if a value is not passed, that's what's going to be assigned It demonstrates creating functions with default values, allowing for values to be assigned if not passed", 'It demonstrates how to handle exceptions using try and catch blocks, throwing a custom error message when a division by zero error occurs, and providing a solution for the division problem when the denominator is not zero.', "the concept of local variables, meaning that whenever the function ends, the variable is no longer accessible It explains the concept of local variables, which are only accessible within the function's scope", 'providing a practical example of calling functions and passing data between them It provides a practical example of calling functions and passing data between them']}, {'end': 3643.877, 'segs': [{'end': 2939.084, 'src': 'embed', 'start': 2912.421, 'weight': 2, 'content': [{'end': 2921.789, 'text': "Now, anytime you create a try block and you are expecting an exception to maybe be triggered, you're going to have to catch that exception.", 'start': 2912.421, 'duration': 9.368}, {'end': 2928.975, 'text': 'And we could say catch constant character exception and see out.', 'start': 2922.37, 'duration': 6.605}, {'end': 2930.897, 'text': 'And then we could go error.', 'start': 2929.496, 'duration': 1.401}, {'end': 2939.084, 'text': 'And then if we wanted to print out our custom message that we defined right here, we could just type in exp and end out.', 'start': 2931.217, 'duration': 7.867}], 'summary': 'Creating try block to catch exceptions and print custom message.', 'duration': 26.663, 'max_score': 2912.421, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU02912421.jpg'}, {'end': 2987.516, 'src': 'embed', 'start': 2963.924, 'weight': 3, 'content': [{'end': 2972.29, 'text': "Well, basically, what we're trying to do with object-oriented programming is we try to simulate real-world objects or concepts in code.", 'start': 2963.924, 'duration': 8.366}, {'end': 2975.852, 'text': "So let's say we wanted to simulate this boy, for example.", 'start': 2972.79, 'duration': 3.062}, {'end': 2981.352, 'text': 'This boy is going to have attributes such as his height, his weight, his name.', 'start': 2976.328, 'duration': 5.024}, {'end': 2985.014, 'text': 'In object-oriented programming, these are referred to as fields.', 'start': 2981.672, 'duration': 3.342}, {'end': 2987.516, 'text': 'This boy also has capabilities.', 'start': 2985.635, 'duration': 1.881}], 'summary': 'Object-oriented programming simulates real-world objects with fields and capabilities.', 'duration': 23.592, 'max_score': 2963.924, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU02963924.jpg'}, {'end': 3132.59, 'src': 'embed', 'start': 3107.687, 'weight': 1, 'content': [{'end': 3113.41, 'text': 'Any public methods or fields that we define inside of here, indented after public,', 'start': 3107.687, 'duration': 5.723}, {'end': 3118.886, 'text': 'is going to be accessible to anything that has access to our object,', 'start': 3113.965, 'duration': 4.921}, {'end': 3127.909, 'text': "and anything that's listed after private is only going to be available in the class code and subclasses will not be able to access it.", 'start': 3118.886, 'duration': 9.023}, {'end': 3130.45, 'text': "In this example, I'm not going to use private.", 'start': 3128.209, 'duration': 2.241}, {'end': 3132.59, 'text': 'I am, however, going to use protected.', 'start': 3130.73, 'duration': 1.86}], 'summary': 'Public methods/fields accessible to anything, private only available in class code/subclasses.', 'duration': 24.903, 'max_score': 3107.687, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU03107687.jpg'}, {'end': 3257.22, 'src': 'embed', 'start': 3234.303, 'weight': 0, 'content': [{'end': 3242.709, 'text': 'And you can see, just like function prototypes, we are defining the data types and so forth for the parameters,', 'start': 3234.303, 'duration': 8.406}, {'end': 3245.051, 'text': "but we're not doing anything more specific than that.", 'start': 3242.709, 'duration': 2.342}, {'end': 3254.479, 'text': "This guy down here is called a deconstructor and it's going to be called automatically anytime an object is deleted or is no longer used.", 'start': 3245.455, 'duration': 9.024}, {'end': 3257.22, 'text': 'And the default is perfectly fine to use.', 'start': 3254.799, 'duration': 2.421}], 'summary': 'Defining data types for parameters and using deconstructor automatically on object deletion.', 'duration': 22.917, 'max_score': 3234.303, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU03234303.jpg'}], 'start': 2912.421, 'title': 'C++ exception handling and oop basics', 'summary': 'Covers c++ exception handling with try-catch block and provides an introduction to object-oriented programming, discussing classes, fields, methods, access specifiers, constructors, destructors, setters, getters, and static methods.', 'chapters': [{'end': 3415.734, 'start': 2912.421, 'title': 'Exception handling and object-oriented programming', 'summary': 'Covers exception handling in c++ by demonstrating the try-catch block and discusses the basics of object-oriented programming, including the creation of classes, fields, methods, access specifiers, constructors, destructors, setters, getters, and static methods.', 'duration': 503.313, 'highlights': ['The chapter covers the basics of exception handling in C++, including the try-catch block and custom error messages. It demonstrates the creation of a try block to catch an exception and print a custom error message, showcasing the practical application of exception handling in C++.', 'The tutorial explains the concept of object-oriented programming, emphasizing the simulation of real-world objects or concepts in code using fields and methods. It discusses the process of simulating real-world objects in code, defining attributes as fields and capabilities as methods, providing a fundamental understanding of object-oriented programming principles.', 'Detailed explanation of creating classes, fields, methods, and access specifiers in C++. It provides a step-by-step guide to creating classes, defining fields and methods, and explaining public, private, and protected access specifiers in C++.', 'The tutorial covers the usage of constructors, destructors, setters, getters, and static methods in C++ classes. It explains the purpose and usage of constructors, destructors, setters, getters, and static methods, illustrating their role in creating and manipulating class objects in C++.']}, {'end': 3643.877, 'start': 3416.234, 'title': 'Implementing constructors and setters in c++', 'summary': 'Discusses implementing constructors, setters, and getters for a c++ class, with examples of polymorphism and static fields usage, along with the explanation of the pointer operator and default deconstructor.', 'duration': 227.643, 'highlights': ["Explaining the pointer operator and assigning length to object's height and width. The chapter explains the usage of the pointer operator to access object's fields and methods, and assigns the length to both object's height and width.", 'Demonstrating polymorphism and usage of virtual methods. The chapter provides a demonstration of polymorphism and the usage of virtual methods, allowing similar objects to be treated the same.', 'Defining setters and getters for height and width, and accessing static fields or variables. The chapter defines setters and getters for height and width, as well as accessing static fields or variables using the class name followed by the field name.']}], 'duration': 731.456, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU02912421.jpg', 'highlights': ['The tutorial covers the usage of constructors, destructors, setters, getters, and static methods in C++ classes. It explains the purpose and usage of constructors, destructors, setters, getters, and static methods, illustrating their role in creating and manipulating class objects in C++.', 'Detailed explanation of creating classes, fields, methods, and access specifiers in C++. It provides a step-by-step guide to creating classes, defining fields and methods, and explaining public, private, and protected access specifiers in C++.', 'The chapter covers the basics of exception handling in C++, including the try-catch block and custom error messages. It demonstrates the creation of a try block to catch an exception and print a custom error message, showcasing the practical application of exception handling in C++.', 'The tutorial explains the concept of object-oriented programming, emphasizing the simulation of real-world objects or concepts in code using fields and methods. It discusses the process of simulating real-world objects in code, defining attributes as fields and capabilities as methods, providing a fundamental understanding of object-oriented programming principles.']}, {'end': 4968.139, 'segs': [{'end': 3906.516, 'src': 'embed', 'start': 3878.539, 'weight': 1, 'content': [{'end': 3884.624, 'text': 'i could also create a circle circle and in this situation it just gets one value.', 'start': 3878.539, 'duration': 6.085}, {'end': 3888.268, 'text': "Then what I'm going to do is demonstrate polymorphism for you.", 'start': 3885.066, 'duration': 3.202}, {'end': 3900.733, 'text': 'This function down here is not going to return anything, but it is going to receive anything that is a subclass or inherits from the shape class.', 'start': 3888.728, 'duration': 12.005}, {'end': 3902.714, 'text': 'So shape.', 'start': 3901.354, 'duration': 1.36}, {'end': 3906.516, 'text': "So it only thinks it's getting shapes and it's still going to work.", 'start': 3903.095, 'duration': 3.421}], 'summary': 'Demonstrating polymorphism with a function that accepts subclasses of the shape class.', 'duration': 27.977, 'max_score': 3878.539, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU03878539.jpg'}, {'end': 4337.799, 'src': 'embed', 'start': 4307.952, 'weight': 0, 'content': [{'end': 4312.506, 'text': 'Rectangle And if we run this, you can see that we get the results that we would be expecting.', 'start': 4307.952, 'duration': 4.554}, {'end': 4319.066, 'text': "Alrighty Alright, so there's an example of how we can use structs and now I want to talk about operator overloading.", 'start': 4312.947, 'duration': 6.119}, {'end': 4328.673, 'text': "Now you're going to be able to define custom operations, just as you define functions, and this is going to allow us to compare, perform calculations,", 'start': 4319.527, 'duration': 9.146}, {'end': 4329.313, 'text': 'etc.', 'start': 4328.673, 'duration': 0.64}, {'end': 4331.795, 'text': 'with objects in very custom ways.', 'start': 4329.413, 'duration': 2.382}, {'end': 4337.799, 'text': "So what I'm going to do is create another class here and it's going to model a box.", 'start': 4332.355, 'duration': 5.444}], 'summary': 'Introduction to using structs and operator overloading in classes', 'duration': 29.847, 'max_score': 4307.952, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU04307952.jpg'}, {'end': 4408.813, 'src': 'embed', 'start': 4385.526, 'weight': 3, 'content': [{'end': 4392.328, 'text': "Now what we're going to do is I'm going to show you how we can increment a box using operator overloading.", 'start': 4385.526, 'duration': 6.802}, {'end': 4399.811, 'text': "So you can come in and we're going to say box and operator and plus plus.", 'start': 4392.669, 'duration': 7.142}, {'end': 4402.712, 'text': 'And this is the increment operator that we have here.', 'start': 4400.031, 'duration': 2.681}, {'end': 4408.813, 'text': 'And this is what we call a unary operator because it only operates on one object.', 'start': 4403.212, 'duration': 5.601}], 'summary': 'Demonstrating incrementing a box using unary operator overloading.', 'duration': 23.287, 'max_score': 4385.526, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU04385526.jpg'}, {'end': 4811.296, 'src': 'embed', 'start': 4762.526, 'weight': 4, 'content': [{'end': 4769.349, 'text': "So just want to briefly cover what I previously covered before I get into lambda expressions, which is what we're here for.", 'start': 4762.526, 'duration': 6.823}, {'end': 4776.553, 'text': 'Now, lambda expressions are going to make it very easy to perform list operations all on one line of code.', 'start': 4769.77, 'duration': 6.783}, {'end': 4780.448, 'text': "So let's say we wanted to go and generate a vector.", 'start': 4777.065, 'duration': 3.383}, {'end': 4782.889, 'text': 'We could do that here using our function.', 'start': 4780.928, 'duration': 1.961}, {'end': 4784.43, 'text': 'So we could say vector.', 'start': 4782.909, 'duration': 1.521}, {'end': 4786.292, 'text': 'This is an integer vector.', 'start': 4784.631, 'duration': 1.661}, {'end': 4788.834, 'text': "We're going to call it vecvals.", 'start': 4786.312, 'duration': 2.522}, {'end': 4792.416, 'text': 'And then we just call our function generateRandomVec.', 'start': 4789.294, 'duration': 3.122}, {'end': 4798.721, 'text': 'So then we want 10 values starting with a minimum value of 1 and a maximum value of 50.', 'start': 4792.837, 'duration': 5.884}, {'end': 4799.621, 'text': 'So there that is.', 'start': 4798.721, 'duration': 0.9}, {'end': 4803.064, 'text': "And let's say we want to sort all these values.", 'start': 4800.222, 'duration': 2.842}, {'end': 4803.724, 'text': 'We could say sort.', 'start': 4803.104, 'duration': 0.62}, {'end': 4809.296, 'text': 'vecvals and start at the beginning through the end.', 'start': 4804.815, 'duration': 4.481}, {'end': 4811.296, 'text': 'Change this to uppercase.', 'start': 4810.016, 'duration': 1.28}], 'summary': 'Lambda expressions simplify list operations, e.g., generating and sorting vectors.', 'duration': 48.77, 'max_score': 4762.526, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU04762526.jpg'}, {'end': 4887.53, 'src': 'embed', 'start': 4864.336, 'weight': 7, 'content': [{'end': 4871.963, 'text': "You're also going to be able to come in and use something similar to filter in other languages, except this is called copy if.", 'start': 4864.336, 'duration': 7.627}, {'end': 4873.865, 'text': 'So let me show you an example here.', 'start': 4872.504, 'duration': 1.361}, {'end': 4876.838, 'text': 'So we could say copy, if,', 'start': 4874.537, 'duration': 2.301}, {'end': 4884.643, 'text': 'and what we want to do here is generate a vector of even values or keep only the even values from our random vector that we generated.', 'start': 4876.838, 'duration': 7.805}, {'end': 4887.53, 'text': "So first off, I'm going to go vector.", 'start': 4885.208, 'duration': 2.322}], 'summary': "Teaching how to use 'copy if' to generate a vector of even values.", 'duration': 23.194, 'max_score': 4864.336, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU04864336.jpg'}], 'start': 3643.897, 'title': 'C++ features and concepts', 'summary': 'Delves into polymorphism, inheritance, object-oriented programming, data types, operator overloading, lambda expressions, vector operations, and practical implementations such as creating classes, structs, and utilizing lambda functions in c++, with examples of generating random vectors, sorting, and filtering.', 'chapters': [{'end': 3742.309, 'start': 3643.897, 'title': 'Polymorphism and inheritance in c++', 'summary': 'Explains polymorphism and inheritance in c++, demonstrating how a circle class inherits fields and methods from a generic shape, and how the correct area function is executed based on the specific type of shape. the example includes defining a generic shape area, creating a circle class, and utilizing inheritance to automatically inherit fields and methods from the shape class.', 'duration': 98.412, 'highlights': ['The chapter explains polymorphism, demonstrating how a circle class inherits fields and methods from a generic shape.', 'It emphasizes that the correct area function is executed based on the specific type of shape, such as circles using the correct area function defined in the shape class.', 'The example includes defining a generic shape area and creating a circle class, utilizing inheritance to automatically inherit fields and methods from the shape class.']}, {'end': 4385.006, 'start': 3742.309, 'title': 'Object-oriented programming and data types', 'summary': 'Covers the implementation of classes, structs, polymorphism, and operator overloading in c++, including details on creating shapes, demonstrating polymorphism, implementing abstract classes, utilizing structs, and operator overloading.', 'duration': 642.697, 'highlights': ['The chapter covers the implementation of classes, structs, polymorphism, and operator overloading in C++. The chapter provides an overview of key concepts in C++ programming, including classes, structs, polymorphism, and operator overloading.', 'Demonstrating polymorphism by creating and manipulating objects of different types. The tutorial demonstrates polymorphism by creating and manipulating objects of different types, showcasing the flexibility and reusability of code.', 'Implementation of abstract classes and the importance of defining pure virtual functions. The importance of defining pure virtual functions in abstract classes is emphasized, showcasing the concept of abstraction and the inability to create objects from abstract classes.', 'Illustrating the usage of structs and their differences from classes in C++ programming. The tutorial illustrates the usage of structs and highlights their differences from classes in C++ programming, particularly in terms of default access levels for members.', 'Explaining the concept of operator overloading and its application for custom operations with objects. The tutorial explains the concept of operator overloading and its application for defining custom operations, allowing for unique comparisons and calculations with objects.']}, {'end': 4719.276, 'start': 4385.526, 'title': 'Operator overloading and lambda expressions', 'summary': 'Demonstrates how to overload operators and create custom functions for incrementing, decrementing, and checking equality of custom objects, as well as creating a c string representation and using lambda expressions to generate a random vector of integers.', 'duration': 333.75, 'highlights': ['The chapter demonstrates how to overload operators and create custom functions for incrementing, decrementing, and checking equality of custom objects, as well as creating a C string representation and using lambda expressions to generate a random vector of integers.', "The increment operator and decrement operators are unary operators that can be defined to increment or decrement the values of an object, and the chapter provides an example of incrementing a box and creating a C string representation for outputting the object's values as a string.", 'Binary operators such as addition, subtraction, multiplication, and division can be overloaded to operate on two objects, and the chapter shows an example of creating a sum of two custom objects by overloading the addition operator, as well as checking for equality between two boxes using custom equality operator overloading.', 'Additionally, the chapter introduces lambda expressions and demonstrates how to create a function for generating a random vector of integers using lambda expressions.']}, {'end': 4968.139, 'start': 4719.276, 'title': 'Lambda expressions and vector operations', 'summary': 'Covers generating random values into a vector, sorting the vector using lambda expressions, and filtering out even values from the vector using copy_if.', 'duration': 248.863, 'highlights': ['The chapter covers generating random values into a vector The speaker explains the process of generating random values into a vector by specifying the number of numbers, minimum, and maximum values.', 'Sorting the vector using lambda expressions The speaker demonstrates using a lambda expression to sort the vector by comparing each value and printing the sorted values.', 'Filtering out even values from the vector using copy_if The speaker shows how to use copy_if to filter out even values from the vector and store them in a new vector, then outputting only the even values.']}], 'duration': 1324.242, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU03643897.jpg', 'highlights': ['The chapter covers the implementation of classes, structs, polymorphism, and operator overloading in C++.', 'Demonstrating polymorphism by creating and manipulating objects of different types.', 'Explaining the concept of operator overloading and its application for custom operations with objects.', 'The chapter demonstrates how to overload operators and create custom functions for incrementing, decrementing, and checking equality of custom objects.', 'The chapter introduces lambda expressions and demonstrates how to create a function for generating a random vector of integers using lambda expressions.', 'The chapter covers generating random values into a vector by specifying the number of numbers, minimum, and maximum values.', 'Sorting the vector using lambda expressions.', 'Filtering out even values from the vector using copy_if.']}, {'end': 5811.513, 'segs': [{'end': 5022.432, 'src': 'embed', 'start': 4992.884, 'weight': 0, 'content': [{'end': 4997.808, 'text': "We're going to have to create an integer called sum, which has a value of 0 here first.", 'start': 4992.884, 'duration': 4.924}, {'end': 5001.111, 'text': 'And then we can output that information as well.', 'start': 4998.469, 'duration': 2.642}, {'end': 5002.252, 'text': 'Right like that.', 'start': 5001.631, 'duration': 0.621}, {'end': 5004.641, 'text': "And if we run it, you can see there's the value.", 'start': 5002.813, 'duration': 1.828}, {'end': 5008.597, 'text': 'And of course, because the vector is random, the sum will be random.', 'start': 5004.962, 'duration': 3.635}, {'end': 5015.188, 'text': 'OK, so there is a quick rundown of some Lambda examples or Lambda expression examples.', 'start': 5009.085, 'duration': 6.103}, {'end': 5017.83, 'text': "And up next, I'm going to talk to you about file IO.", 'start': 5015.568, 'duration': 2.262}, {'end': 5022.432, 'text': 'Now, for this example, make sure you include all the libraries that I have here.', 'start': 5018.21, 'duration': 4.222}], 'summary': 'Creating an integer sum with a value of 0, and discussing lambda examples and file io.', 'duration': 29.548, 'max_score': 4992.884, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU04992884.jpg'}, {'end': 5489.537, 'src': 'embed', 'start': 5462.087, 'weight': 2, 'content': [{'end': 5467.211, 'text': 'We can define a macro constant and in this situation,', 'start': 5462.087, 'duration': 5.124}, {'end': 5474.898, 'text': "anywhere you see the uppercase P and I it's automatically going to be replaced with whatever value you put inside of it.", 'start': 5467.211, 'duration': 7.687}, {'end': 5477.34, 'text': 'Also, we have macro functions.', 'start': 5475.558, 'duration': 1.782}, {'end': 5482.253, 'text': 'So we can define, for example, area of a circle.', 'start': 5477.99, 'duration': 4.263}, {'end': 5489.537, 'text': "And anywhere you find this, we will have, we'll take the radius, which is passed inside of it.", 'start': 5482.793, 'duration': 6.744}], 'summary': 'Macros allow automatic replacement of constants and functions in the code.', 'duration': 27.45, 'max_score': 5462.087, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU05462087.jpg'}, {'end': 5549.364, 'src': 'embed', 'start': 5518.339, 'weight': 1, 'content': [{'end': 5524.044, 'text': "Now we're going to be able to use templates to create functions or classes that can work with many different types.", 'start': 5518.339, 'duration': 5.705}, {'end': 5533.371, 'text': 'Now, templates are going to differ from function overloading, in that, instead of having a function that does similar things with different objects,', 'start': 5524.484, 'duration': 8.887}, {'end': 5537.294, 'text': 'a template does the same thing with different objects.', 'start': 5533.371, 'duration': 3.923}, {'end': 5549.364, 'text': "So, we're going to come in here and we will define template and we're going to say type name t and then we'll say void times 2.", 'start': 5537.735, 'duration': 11.629}], 'summary': 'Templates allow creating functions/classes to work with different types.', 'duration': 31.025, 'max_score': 5518.339, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU05518339.jpg'}, {'end': 5721.176, 'src': 'embed', 'start': 5693.868, 'weight': 4, 'content': [{'end': 5699.21, 'text': "Here I'm going to define a template class, which is going to be a person.", 'start': 5693.868, 'duration': 5.342}, {'end': 5704.851, 'text': 'And template classes are going to be classes that can work with multiple different data types, of course.', 'start': 5699.59, 'duration': 5.261}, {'end': 5712.473, 'text': "So I'm going to say template, type name T, and type name U.", 'start': 5705.351, 'duration': 7.122}, {'end': 5718.195, 'text': "And you can define that you may receive parameters with different types, but they don't have to be different.", 'start': 5712.473, 'duration': 5.722}, {'end': 5720.456, 'text': 'So you have options here.', 'start': 5718.875, 'duration': 1.581}, {'end': 5721.176, 'text': 'We can say person.', 'start': 5720.536, 'duration': 0.64}], 'summary': 'Defining a template class for a person with multiple data types.', 'duration': 27.308, 'max_score': 5693.868, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU05693868.jpg'}], 'start': 4968.339, 'title': 'Lambda expressions and file io', 'summary': 'Covers lambda expressions with examples capturing variables, creating sums, and file input/output operations. it explains storing functions as variables, passing functions into functions, using macros, working with template functions and classes.', 'chapters': [{'end': 5015.188, 'start': 4968.339, 'title': 'Lambda expression examples', 'summary': 'Explains lambda expressions, demonstrating how to capture all variables in a lambda and create a sum using a lambda expression, with a quick rundown of lambda examples.', 'duration': 46.849, 'highlights': ['The chapter explains lambda expressions and the process of capturing all variables in a lambda.', 'Demonstrates creating a sum using a lambda expression and outputting the result.', 'Provides a quick rundown of lambda expression examples.']}, {'end': 5811.513, 'start': 5015.568, 'title': 'File io and function objects', 'summary': 'Covers file input/output operations and function objects, explaining how to write and read from files, store functions as variables, pass functions into functions, use macros for constants and functions, work with template functions for different data types, and create template classes for multiple data types.', 'duration': 795.945, 'highlights': ['Explanation of file input/output operations, including opening, writing to, and reading from a file using fstream library. Demonstrates how to open, write to, and read from a file using the fstream library, providing insights into file manipulation techniques.', 'Demonstration of storing functions as variables and passing functions into functions. Illustrates the process of storing functions as variables and passing functions into other functions, enabling the manipulation of functions as objects.', 'Introduction to macro constants and macro functions for automatic text replacement and formulaic calculations. Introduces the concept of macro constants and macro functions, showcasing their utility for automatic text replacement and formulaic calculations.', 'Explanation of template functions for different data types and working with multiple parameters. Explores the usage of template functions for different data types and demonstrates working with multiple parameters, showcasing versatility in handling various data types.', 'Illustration of template classes for working with multiple data types in a class. Illustrates the usage of template classes for working with multiple data types in a class, showcasing the flexibility of template classes in handling different data types.']}], 'duration': 843.174, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU04968339.jpg', 'highlights': ['Demonstrates creating a sum using a lambda expression and outputting the result.', 'Illustrates the process of storing functions as variables and passing functions into other functions, enabling the manipulation of functions as objects.', 'Introduction to macro constants and macro functions for automatic text replacement and formulaic calculations.', 'Explanation of template functions for different data types and working with multiple parameters.', 'Illustrates the usage of template classes for working with multiple data types in a class.']}, {'end': 6732.52, 'segs': [{'end': 5847.109, 'src': 'embed', 'start': 5812.113, 'weight': 0, 'content': [{'end': 5813.874, 'text': 'T Type name.', 'start': 5812.113, 'duration': 1.761}, {'end': 5815.435, 'text': 'U Int.', 'start': 5814.454, 'duration': 0.981}, {'end': 5818.316, 'text': 'Person T.', 'start': 5816.055, 'duration': 2.261}, {'end': 5820.897, 'text': "U And then we'll go num of people.", 'start': 5818.316, 'duration': 2.581}, {'end': 5821.757, 'text': 'Like that.', 'start': 5821.317, 'duration': 0.44}, {'end': 5824.584, 'text': 'And if we run it, you could see that that all works out.', 'start': 5822.423, 'duration': 2.161}, {'end': 5831.165, 'text': "And also you could go in there and change these to ints and doubles, and they will also work out, flip them and flop them and do whatever you'd like.", 'start': 5825.004, 'duration': 6.161}, {'end': 5832.145, 'text': 'All right.', 'start': 5831.725, 'duration': 0.42}, {'end': 5837.827, 'text': 'So there is another example of how to go and define a template class.', 'start': 5832.225, 'duration': 5.602}, {'end': 5840.267, 'text': "And now I'd like to talk about containers.", 'start': 5838.507, 'duration': 1.76}, {'end': 5847.109, 'text': 'Now we have already seen the container vector and how useful it is, but there are many other different types of containers.', 'start': 5840.788, 'duration': 6.321}], 'summary': 'Template class t with num of people, containers like vector.', 'duration': 34.996, 'max_score': 5812.113, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU05812113.jpg'}, {'end': 5968.661, 'src': 'embed', 'start': 5939.154, 'weight': 1, 'content': [{'end': 5943.835, 'text': "and i think that's a good just example of how to use double-ended queues.", 'start': 5939.154, 'duration': 4.681}, {'end': 5946.476, 'text': 'and now i want to talk about iterators.', 'start': 5943.835, 'duration': 2.641}, {'end': 5956.138, 'text': "now iterators are going to be used to point at container memory locations, so let's go and create a vector here, just going to be an integer vector,", 'start': 5946.476, 'duration': 9.662}, {'end': 5961.58, 'text': "and let's call this nums2 and go and fill it up with the same types of values.", 'start': 5956.138, 'duration': 5.442}, {'end': 5968.661, 'text': "now what we want to do is to define an iterator as the same type and we'll mark it as iterator.", 'start': 5961.58, 'duration': 7.081}], 'summary': 'Demonstrated use of double-ended queues and creation of iterators for container memory locations.', 'duration': 29.507, 'max_score': 5939.154, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU05939154.jpg'}, {'end': 6355.069, 'src': 'embed', 'start': 6323.798, 'weight': 2, 'content': [{'end': 6328.722, 'text': 'but we could also use something called a smart pointer to do much the same.', 'start': 6323.798, 'duration': 4.924}, {'end': 6332.806, 'text': "so again we're going to say the amount to store how many do you want to store?", 'start': 6328.722, 'duration': 4.084}, {'end': 6335.848, 'text': "and then go and get rid of everything else that's there.", 'start': 6332.806, 'duration': 3.042}, {'end': 6342.68, 'text': "and then what we're going to do instead is go unique pointer integer array.", 'start': 6335.848, 'duration': 6.832}, {'end': 6348.004, 'text': 'And this memory is going to be automatically reallocated for us.', 'start': 6343.1, 'duration': 4.904}, {'end': 6355.069, 'text': 'So we can just go pnums new integer and the amount to store.', 'start': 6348.624, 'duration': 6.445}], 'summary': 'Using smart pointers to manage memory allocation for integer array.', 'duration': 31.271, 'max_score': 6323.798, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU06323798.jpg'}, {'end': 6440.021, 'src': 'embed', 'start': 6411.783, 'weight': 3, 'content': [{'end': 6415.926, 'text': "All right, so now what I'd like to talk about is how we can work with threads.", 'start': 6411.783, 'duration': 4.143}, {'end': 6417.08, 'text': 'All right.', 'start': 6416.559, 'duration': 0.521}, {'end': 6428.531, 'text': 'so threads are just going to be blocks of code that we are going to be able to execute at the same time which each individual block of code being executed.', 'start': 6417.08, 'duration': 11.451}, {'end': 6434.878, 'text': 'In this example, whenever one of the other threads of executable code goes to sleep.', 'start': 6428.952, 'duration': 5.926}, {'end': 6436.54, 'text': 'So we need a couple more libraries.', 'start': 6435.158, 'duration': 1.382}, {'end': 6440.021, 'text': "So I'm going to come in, include thread, of course.", 'start': 6436.98, 'duration': 3.041}], 'summary': 'Discussion on working with threads for executing code simultaneously.', 'duration': 28.238, 'max_score': 6411.783, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU06411783.jpg'}, {'end': 6683.574, 'src': 'embed', 'start': 6618.424, 'weight': 4, 'content': [{'end': 6626.29, 'text': "All right, so actually after we output all that information, what we're going to do here is put the thread to sleep for up to three seconds.", 'start': 6618.424, 'duration': 7.866}, {'end': 6632.987, 'text': "So I'm going to go this thread sleep for chrono seconds.", 'start': 6626.923, 'duration': 6.064}, {'end': 6642.193, 'text': "And I'm actually going to get a random value with a maximum of three by using our random function we created earlier on in this.", 'start': 6633.727, 'duration': 8.466}, {'end': 6648.197, 'text': 'Now I can go and get now time chrono again and system clock.', 'start': 6642.893, 'duration': 5.304}, {'end': 6651.999, 'text': "And that's going to be the now time current, you know, time.", 'start': 6648.797, 'duration': 3.202}, {'end': 6653.73, 'text': 'Go and get sleep time.', 'start': 6652.489, 'duration': 1.241}, {'end': 6658.092, 'text': 'Again, this is going to be chrono and system.', 'start': 6653.75, 'duration': 4.342}, {'end': 6661.074, 'text': 'Clock to time.', 'start': 6658.672, 'duration': 2.402}, {'end': 6662.815, 'text': 'Oops, to time.', 'start': 6661.094, 'duration': 1.721}, {'end': 6665.276, 'text': 'T, pass in now time.', 'start': 6663.355, 'duration': 1.921}, {'end': 6667.697, 'text': "And then let's output all of our information.", 'start': 6665.776, 'duration': 1.921}, {'end': 6671.459, 'text': 'So we can say cout and thread.', 'start': 6667.757, 'duration': 3.702}, {'end': 6674.961, 'text': "And let's go and output that ID.", 'start': 6672.04, 'duration': 2.921}, {'end': 6677.723, 'text': 'And this would be the awake time.', 'start': 6675.561, 'duration': 2.162}, {'end': 6679.524, 'text': 'And to get that, we go ctime.', 'start': 6677.743, 'duration': 1.781}, {'end': 6683.574, 'text': 'and sleep time like this.', 'start': 6681.292, 'duration': 2.282}], 'summary': 'Thread sleeps for up to 3 seconds before outputting information.', 'duration': 65.15, 'max_score': 6618.424, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU06618424.jpg'}], 'start': 5812.113, 'title': 'C++ features and libraries', 'summary': 'Covers template classes, containers, and smart pointers in c++, including their usage, comparison, and operations with threads. it also explores managing threads and time using the chrono library, with demonstrations of time tracking and thread management.', 'chapters': [{'end': 6134.724, 'start': 5812.113, 'title': 'Template classes and containers in c++', 'summary': 'Covers the definition and usage of template classes and various containers such as double-ended queue and iterators in c++, including examples and operations demonstrated with code.', 'duration': 322.611, 'highlights': ['The chapter explains the definition and usage of template classes in C++, including examples of defining a template class with different data types and demonstrating its flexibility in handling various data types.', 'It demonstrates the usage of the double-ended queue (deque) in C++, highlighting its dynamic array nature that allows expansion or contraction on both ends, with examples of adding and accessing values, as well as the associated complexities of accessing index values.', 'The chapter provides a detailed explanation of iterators in C++, including examples of creating and using iterators to point at container memory locations, iterating through a vector, advancing a set number of spaces, using next and previous functions, and inserting values at specific indices.']}, {'end': 6484.966, 'start': 6134.724, 'title': 'Smart pointers and memory allocation', 'summary': 'Discusses the use of smart pointers and memory allocation, including the comparison of using malloc and smart pointers, as well as working with threads.', 'duration': 350.242, 'highlights': ['Discussed the use of malloc for memory allocation, prompting user input for the amount of space to be allocated and storing values in the allocated memory. Use of malloc for memory allocation, user input for amount of space, and storing values.', 'Introduced the use of smart pointers as an alternative for memory allocation, demonstrating the automatic reallocation of memory and its ease of use compared to malloc. Introduction of smart pointers as an alternative for memory allocation, demonstration of automatic reallocation, and comparison to malloc.', 'Outlined the concept of working with threads and the inclusion of necessary libraries for thread management. Explanation of working with threads and inclusion of necessary thread management libraries.']}, {'end': 6732.52, 'start': 6485.786, 'title': 'Managing threads and time', 'summary': 'Explores the creation and management of threads in c++ using the chrono library to track time, including functions to output time information and thread execution, with a demonstration of putting threads to sleep for up to three seconds.', 'duration': 246.734, 'highlights': ["Creation and management of threads in C++ The chapter discusses creating and managing threads in C++ using the 'thread' class, demonstrating the usage of 'join' to synchronize threads and the main thread.", "Usage of chrono library to track time The transcript details the usage of chrono library to track time, specifically utilizing 'chrono::system_clock' and 'chrono::seconds' to capture and output time information.", "Demonstration of putting threads to sleep The chapter demonstrates putting threads to sleep for up to three seconds using 'this_thread::sleep_for' and a random value generation function, showcasing the practical application of managing thread execution."]}], 'duration': 920.407, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU05812113.jpg', 'highlights': ['The chapter explains the definition and usage of template classes in C++, including examples of defining a template class with different data types and demonstrating its flexibility in handling various data types.', 'The chapter provides a detailed explanation of iterators in C++, including examples of creating and using iterators to point at container memory locations, iterating through a vector, advancing a set number of spaces, using next and previous functions, and inserting values at specific indices.', 'Introduced the use of smart pointers as an alternative for memory allocation, demonstrating the automatic reallocation of memory and its ease of use compared to malloc.', "Creation and management of threads in C++ The chapter discusses creating and managing threads in C++ using the 'thread' class, demonstrating the usage of 'join' to synchronize threads and the main thread.", "Usage of chrono library to track time The transcript details the usage of chrono library to track time, specifically utilizing 'chrono::system_clock' and 'chrono::seconds' to capture and output time information.", "Demonstration of putting threads to sleep The chapter demonstrates putting threads to sleep for up to three seconds using 'this_thread::sleep_for' and a random value generation function, showcasing the practical application of managing thread execution."]}, {'end': 8571.165, 'segs': [{'end': 6798.703, 'src': 'embed', 'start': 6773.523, 'weight': 0, 'content': [{'end': 6779.468, 'text': 'And I have a huge C++ tutorial that provides a whole bunch of other examples working with threads.', 'start': 6773.523, 'duration': 5.945}, {'end': 6782.75, 'text': 'But now I want to talk more about some sequence containers.', 'start': 6779.968, 'duration': 2.782}, {'end': 6783.19, 'text': 'All right.', 'start': 6782.77, 'duration': 0.42}, {'end': 6788.034, 'text': "So now I'm going to cover a whole bunch of additional containers that we have available to us.", 'start': 6783.211, 'duration': 4.823}, {'end': 6789.596, 'text': "I'm going to cover decks.", 'start': 6788.174, 'duration': 1.422}, {'end': 6796.221, 'text': "I'm also going to cover lists and also forward lists.", 'start': 6790.356, 'duration': 5.865}, {'end': 6798.703, 'text': "Okay, so let's jump into these.", 'start': 6796.88, 'duration': 1.823}], 'summary': 'C++ tutorial covers sequence containers like decks, lists, and forward lists.', 'duration': 25.18, 'max_score': 6773.523, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU06773523.jpg'}, {'end': 7396.948, 'src': 'embed', 'start': 7367.856, 'weight': 2, 'content': [{'end': 7378.58, 'text': 'Now a forward list, and you can see the library forward up here, is basically like a list, but each item only has a link to the next item in the list.', 'start': 7367.856, 'duration': 10.724}, {'end': 7382.602, 'text': 'And it has no way of getting to any item that precedes it.', 'start': 7379, 'duration': 3.602}, {'end': 7388.724, 'text': 'And by organizing the list in this way, it makes them very quick sequence containers.', 'start': 7383.062, 'duration': 5.662}, {'end': 7395.047, 'text': "So what we're going to do is we're going to create forward list.", 'start': 7389.224, 'duration': 5.823}, {'end': 7396.948, 'text': "It's going to contain integers.", 'start': 7395.507, 'duration': 1.441}], 'summary': 'Forward list is a quick sequence container with links to the next item, containing integers.', 'duration': 29.092, 'max_score': 7367.856, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU07367856.jpg'}, {'end': 8137.66, 'src': 'embed', 'start': 8108.74, 'weight': 1, 'content': [{'end': 8111.341, 'text': 'All right, so a quick example of how to use stacks.', 'start': 8108.74, 'duration': 2.601}, {'end': 8116.623, 'text': "And now I'm going to cover the first in, first out container we have available called queue.", 'start': 8111.421, 'duration': 5.202}, {'end': 8119.326, 'text': "Let's go and create a queue.", 'start': 8117.145, 'duration': 2.181}, {'end': 8122.408, 'text': 'And this is going to be a string.', 'start': 8120.227, 'duration': 2.181}, {'end': 8124.71, 'text': "And we'll call this cast.", 'start': 8123.389, 'duration': 1.321}, {'end': 8128.452, 'text': "And you're going to be able to push values on here as well.", 'start': 8125.43, 'duration': 3.022}, {'end': 8131.955, 'text': "So let's go and throw some random values on here.", 'start': 8129.053, 'duration': 2.902}, {'end': 8134.657, 'text': 'All right, so we got some random values.', 'start': 8132.575, 'duration': 2.082}, {'end': 8137.66, 'text': 'We can go and get the size for them.', 'start': 8134.757, 'duration': 2.903}], 'summary': 'Demonstration of using stacks and creating a queue with string values.', 'duration': 28.92, 'max_score': 8108.74, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU08108740.jpg'}, {'end': 8267.37, 'src': 'embed', 'start': 8239.767, 'weight': 4, 'content': [{'end': 8243.834, 'text': 'and run it and there you can see all of them are in order just like we had said.', 'start': 8239.767, 'duration': 4.067}, {'end': 8250.807, 'text': "Alright, one more guy here that I'd like to cover and that is going to be called the enumerated type.", 'start': 8244.215, 'duration': 6.592}, {'end': 8257.142, 'text': 'All right, so an enumerated type is going to be used to create custom data types.', 'start': 8251.277, 'duration': 5.865}, {'end': 8264.448, 'text': "And what you're gonna do is assign names to constant integers so that your program's going to hopefully be easier to read.", 'start': 8257.462, 'duration': 6.986}, {'end': 8267.37, 'text': "So let's go and create an enumerated type.", 'start': 8264.928, 'duration': 2.442}], 'summary': 'Creating an enumerated type to assign names to constant integers for easier program readability.', 'duration': 27.603, 'max_score': 8239.767, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU08239767.jpg'}, {'end': 8376.841, 'src': 'embed', 'start': 8347.433, 'weight': 5, 'content': [{'end': 8353.556, 'text': "To finish up this massive tutorial, I'm going to cover regular expressions with a brief example.", 'start': 8347.433, 'duration': 6.123}, {'end': 8357.496, 'text': "If you want more on regular expressions, I'll provide a link in the description.", 'start': 8353.796, 'duration': 3.7}, {'end': 8360.198, 'text': 'So of course, you need the regular expression library.', 'start': 8357.916, 'duration': 2.282}, {'end': 8369.44, 'text': "And basically what a regular expression does is it's a way of defining what type of information we want to search for in this situation in a string.", 'start': 8360.657, 'duration': 8.783}, {'end': 8376.841, 'text': "So what I'm going to say is I'm going to say that I want to match, here's a string that we're going to search for, the Apex.", 'start': 8370.02, 'duration': 6.821}], 'summary': 'Tutorial covers regular expressions for searching in a string.', 'duration': 29.408, 'max_score': 8347.433, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU08347433.jpg'}], 'start': 6732.94, 'title': 'C++ programming concepts', 'summary': 'Covers various c++ programming concepts, including time and threads, sequence containers, containers and lists, sets, multi-sets, maps, container adapters, enumerated types, and regular expressions. it provides practical examples and demonstrations for usage and functionalities of these concepts.', 'chapters': [{'end': 6772.902, 'start': 6732.94, 'title': 'Using time and threads in programming', 'summary': 'Explains how to use time and threads in programming, demonstrating the execution of functions, handling errors, and displaying time information for multiple threads.', 'duration': 39.962, 'highlights': ['The chapter demonstrates the execution of functions and handling errors while programming.', 'It shows the display of time information for multiple threads during execution.', 'The example provides insights into using time and threads in programming.']}, {'end': 7350.988, 'start': 6773.523, 'title': 'C++ sequence containers overview', 'summary': 'Covers the usage of decks and lists in c++, including their functionalities such as insertion, deletion, and access, as well as providing examples of code implementation.', 'duration': 577.465, 'highlights': ['Decks and lists in C++ are discussed, including their functionalities such as insertion, deletion, and access, with code examples provided.', 'The tutorial covers the usage of decks, demonstrating operations such as insertion, deletion, and access using iterators, with examples and output.', 'The chapter also explains the usage of lists, showcasing functionalities like insertion, deletion, and access using iterators, with examples and output provided.', 'The detailed tutorial provides insights into the functionalities of lists, including operations such as sorting, reversing, removing duplicates, and merging lists, with code examples and expected outcomes.']}, {'end': 7753.303, 'start': 7351.508, 'title': 'Containers and lists overview', 'summary': 'Covers the usage of forward lists and associative containers, showcasing various operations and functionalities, such as insertion, removal, and manipulation, with practical examples and code demonstrations, including the creation of forward lists and sets, and the utilization of iterators and functions like insert, erase, find, lower bound, and upper bound.', 'duration': 401.795, 'highlights': ['The chapter covers the usage of forward lists and associative containers, showcasing various operations and functionalities. It demonstrates the practical usage and functionality of forward lists and associative containers.', 'The demonstration includes the creation of forward lists and sets, and the utilization of iterators and functions like insert, erase, find, lower bound, and upper bound. It includes practical examples and code demonstrations of creating forward lists and sets, and using iterators and functions such as insert, erase, find, lower bound, and upper bound.', 'The chapter covers insertion, removal, and manipulation of elements within the containers. It covers the practical operations of insertion, removal, and manipulation of elements within the containers.']}, {'end': 7989.079, 'start': 7753.343, 'title': 'Sets, multi-sets, and maps in c++', 'summary': 'Covers the usage of sets, multi-sets, and maps in c++, including examples of inserting, finding, and iterating through elements, demonstrating the differences in storing and accessing data.', 'duration': 235.736, 'highlights': ['The chapter covers the usage of sets, multi-sets, and maps in C++ Key point: Introduction to the data structures covered in the chapter.', 'Examples of inserting, finding, and iterating through elements are provided Key point: Demonstrates practical usage of the data structures with quantifiable actions.', 'Demonstrating the differences in storing and accessing data Key point: Emphasizes the distinctions between the data structures and their functionality.']}, {'end': 8239.24, 'start': 7989.699, 'title': 'Container adapters in c++', 'summary': 'Covers the usage of container adapters in c++, including the implementation of stack, queue, and priority queue, with specific examples and functions demonstrated such as push, pop, size, and empty.', 'duration': 249.541, 'highlights': ['The chapter explains the usage of stack container adapter in C++, including the implementation of last in, first out functionality with examples of push, pop, size, and checking if the stack is empty. Examples of push, pop, size, and empty functions demonstrated.', 'The section covers the usage of queue container adapter in C++, demonstrating the first in, first out functionality with examples of push, pop, size, and checking if the queue is empty. Examples of push, pop, size, and empty functions demonstrated.', 'The chapter highlights the implementation of priority queue container adapter in C++, showcasing the organization with the largest first and demonstrating the usage of push, top, pop, size, and checking if the priority queue is empty. Demonstration of push, top, pop, size, and empty functions.']}, {'end': 8571.165, 'start': 8239.767, 'title': 'C++ enumerated types and regular expressions', 'summary': 'Covers the creation and usage of enumerated types in c++ to define custom data types and cycle through constant integers, and also provides a brief overview of regular expressions for searching and matching patterns in strings, with a demonstration of identifying matches and their positions.', 'duration': 331.398, 'highlights': ['An introduction to enumerated types in C++ where custom data types are created and constant integers are cycled through, such as the example of assigning names to days of the week with their corresponding values.', 'A demonstration of using regular expressions in C++ to search and match patterns in strings, with the example of searching for and identifying matches for specific patterns, and outputting the number of matches as well as their positions in the string.', 'Explaining the usage of regular expressions in C++ for searching and matching patterns in strings, including identifying specific patterns and cycling through matches to output information about each match and its position in the string.']}], 'duration': 1838.225, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6y0bp-mnYU0/pics/6y0bp-mnYU06732940.jpg', 'highlights': ['The chapter covers the usage of sets, multi-sets, and maps in C++ Key point: Introduction to the data structures covered in the chapter.', 'The chapter explains the usage of stack container adapter in C++, including the implementation of last in, first out functionality with examples of push, pop, size, and checking if the stack is empty. Examples of push, pop, size, and empty functions demonstrated.', 'The chapter covers the usage of forward lists and associative containers, showcasing various operations and functionalities. It demonstrates the practical usage and functionality of forward lists and associative containers.', 'Decks and lists in C++ are discussed, including their functionalities such as insertion, deletion, and access, with code examples provided.', 'An introduction to enumerated types in C++ where custom data types are created and constant integers are cycled through, such as the example of assigning names to days of the week with their corresponding values.', 'A demonstration of using regular expressions in C++ to search and match patterns in strings, with the example of searching for and identifying matches for specific patterns, and outputting the number of matches as well as their positions in the string.']}], 'highlights': ['The tutorial is a remake to celebrate reaching 1 million subscribers, condensing a thousand plus page book into one video.', 'The video includes a table of contents for easy navigation and code links in the description.', 'Installation instructions for Windows, Mac, and Linux using NetBeans are provided, making it easy to set up the exact same environment as the presenter.', 'Importing necessary libraries like C standard library, iostream, string, limits, vector, sstream, and others to work with different data types and functionalities.', "Creating a basic 'hello world' program using cout to output information to the console and explaining the stream insertion operator and its functionality.", 'Covers conditional logical operators, if-else statements, and the ternary operator.', 'Arrays support multidimensional structures, enabling the creation of arrays with multiple layers, columns, and rows.', 'Vectors in C++ are utilized when the size of the array is unknown, enabling dynamic resizing and storage of data.', 'The chapter explains the concept of pointers in C++ and how they can be used to pass memory locations and change variable values at will, illustrating the process with examples, such as assigning age values using pointers and dereference operators.', 'The chapter covers the implementation of classes, structs, polymorphism, and operator overloading in C++.', 'Demonstrating polymorphism by creating and manipulating objects of different types.', 'Explaining the concept of operator overloading and its application for custom operations with objects.', 'The chapter introduces lambda expressions and demonstrates how to create a function for generating a random vector of integers using lambda expressions.', 'Demonstrates creating a sum using a lambda expression and outputting the result.', 'Introduction to macro constants and macro functions for automatic text replacement and formulaic calculations.', 'The chapter explains the definition and usage of template classes in C++, including examples of defining a template class with different data types and demonstrating its flexibility in handling various data types.', 'The chapter provides a detailed explanation of iterators in C++, including examples of creating and using iterators to point at container memory locations, iterating through a vector, advancing a set number of spaces, using next and previous functions, and inserting values at specific indices.', 'Introduced the use of smart pointers as an alternative for memory allocation, demonstrating the automatic reallocation of memory and its ease of use compared to malloc.', "Creation and management of threads in C++ The chapter discusses creating and managing threads in C++ using the 'thread' class, demonstrating the usage of 'join' to synchronize threads and the main thread.", "Usage of chrono library to track time The transcript details the usage of chrono library to track time, specifically utilizing 'chrono::system_clock' and 'chrono::seconds' to capture and output time information.", "Demonstration of putting threads to sleep The chapter demonstrates putting threads to sleep for up to three seconds using 'this_thread::sleep_for' and a random value generation function, showcasing the practical application of managing thread execution.", 'The chapter covers the usage of sets, multi-sets, and maps in C++ Key point: Introduction to the data structures covered in the chapter.', 'The chapter explains the usage of stack container adapter in C++, including the implementation of last in, first out functionality with examples of push, pop, size, and checking if the stack is empty. Examples of push, pop, size, and empty functions demonstrated.', 'The chapter covers the usage of forward lists and associative containers, showcasing various operations and functionalities. It demonstrates the practical usage and functionality of forward lists and associative containers.', 'Decks and lists in C++ are discussed, including their functionalities such as insertion, deletion, and access, with code examples provided.', 'An introduction to enumerated types in C++ where custom data types are created and constant integers are cycled through, such as the example of assigning names to days of the week with their corresponding values.', 'A demonstration of using regular expressions in C++ to search and match patterns in strings, with the example of searching for and identifying matches for specific patterns, and outputting the number of matches as well as their positions in the string.']}