📚 Learn how to solve problems and build projects with these Free E-Books ⬇️ C++ Lambdas e-book - free download here: bit.ly/freeCppE-Book Entire Object-Pascal step-by-step guide - free download here: bit.ly/FreeObjectPascalEbook 🚀📈💻🔥 My Practical Programming Course: www.codebeautyacademy.com/ Experience the power of practical learning, gain career-ready skills, and start building real applications! This is a step-by-step course designed to take you from beginner to expert in no time! 💰 Here is a coupon to save 10% on your first payment (CODEBEAUTY_YT10). Use it quickly, because it will be available for a limited time. #include #include using namespace std; bool ascendingCompare(int a, int b) { return a < b; } bool descendingCompare(int a, int b) { return a > b; } void sortAscending(vector& numbersVector) { for (int startIndex = 0; startIndex < numbersVector.size(); startIndex++) { int bestIndex = startIndex; for (int currentIndex = startIndex + 1; currentIndex < numbersVector.size(); currentIndex++) { // We are doing comparison here if (ascendingCompare(numbersVector[currentIndex], numbersVector[bestIndex])) bestIndex = currentIndex; } swap(numbersVector[startIndex], numbersVector[bestIndex]); } } void sortDescending(vector& numbersVector) { for (int startIndex = 0; startIndex < numbersVector.size(); startIndex++) { int bestIndex = startIndex; for (int currentIndex = startIndex + 1; currentIndex < numbersVector.size(); currentIndex++) { // We are doing comparison here if (descendingCompare(numbersVector[currentIndex], numbersVector[bestIndex])) bestIndex = currentIndex; } swap(numbersVector[startIndex], numbersVector[bestIndex]); } } void customSort(vector& numbersVector, bool(*compareFunctionPtr)(int, int)) { for (int startIndex = 0; startIndex < numbersVector.size(); startIndex++) { int bestIndex = startIndex; for (int currentIndex = startIndex + 1; currentIndex < numbersVector.size(); currentIndex++) { // We are doing comparison here if (compareFunctionPtr(numbersVector[currentIndex], numbersVector[bestIndex])) bestIndex = currentIndex; } swap(numbersVector[startIndex], numbersVector[bestIndex]); } } void printNumbers(vector& numbersVector) { for (int i = 0; i < numbersVector.size(); ++i) cout
@hbm2933 жыл бұрын
Due to the cumbersomeness of the types of these function pointers, they are good candidates for being typedef'ed: typedef bool (*SORT_FUNC)(int, int); void customSort(vector& numbersVector, SORT_FUNC compareFunctionPtr) { .... } SORT_FUNC funcPtr = descendingCompare; // Here in C++11 one could use that "auto" keyword to not have to write the actual type of 'funcPtr'.
@arod32953 жыл бұрын
when I used "cout
@giuseppecinque28282 жыл бұрын
It is a bubble sort
@kevin_mitchell Жыл бұрын
@@arod3295 This is my behaviour too, but I'm using the Terminal and not VSCode. cout
@mexxiano3 жыл бұрын
Saldina! We love you all around the World! Cheers from Argentina!
@lalaff30123 жыл бұрын
Cheers from Brazil!
@CodeBeauty3 жыл бұрын
I love you too! 💙💚 🇦🇷🇧🇷
@luisrobertoflores32783 жыл бұрын
Cheers from El Salvadorl!
@iam_mausam Жыл бұрын
Cheers from India 🇮🇳
@unchris Жыл бұрын
Cheers from Peru
@NipkowDisk3 жыл бұрын
Saldina, I said it in the chat and I will say it here: your videos are well worth watching in my opinion as you are concise, thorough, and pleasant to listen to. Please keep up the excellent work!!
@CodeBeauty3 жыл бұрын
Thank you so much, I will! 🙏💙💙
@sanderverhage51482 жыл бұрын
Great video, but some aprovements. First a typedef helps a lot with the strange syntax. For example: typedef bool (*Compare_T)(int,int); Compare_T myFuncPtr; Sort( vector& Numbers, Compare_T OnCompare ); Second why don't you pass your compare function directly? Sort( myNumbers, AscendingCompare );
@shahzahir99903 жыл бұрын
It's nice to see you again Mam🙂
@CodeBeauty3 жыл бұрын
🥰🥰🤗
@nishaternotes3 жыл бұрын
bool compare(int a, int b){ return a < b;} sort(arr.begin(), arr.end(), compare); I was always wondering how this function works and today I have learned it from you. Thank you for your all videos
@streambumper2503 жыл бұрын
I'm self-learning C++ and your videos are really helpful. This is a very clear explanation about function pointers. Thank you so much for your hard work =)
@MegaAtlus3 жыл бұрын
After these videos, i'm feeling myself like senior C++ Developer:) Thanks!
@CodeBeauty3 жыл бұрын
I'm so happy if my videos can motivate you and make you like programming! 🥰🥰🥰
@joebosah27273 жыл бұрын
You are just starting
@smoothoctopus3 жыл бұрын
the countless embedded code I've read through and copied and pasted that refused to work because of missing functions that pointers were looking for...I never understood the problem until now...Thank you for the detailed video and the channel, I'm slowly working through all your tutorials!....Beyond that..uff that accent
@remimonsel994411 ай бұрын
This video is such a good one. I spent 2 hours trying to do the function as a parameter until I think of this video and solved my issue in 4 minutes. You’re awesome Saldina ❤
@CodeBeauty11 ай бұрын
❤️❤️💪
@samuelholmes4547 Жыл бұрын
I'm a C++ beginner and this was well done. This was very easy to follow and I will be tuning in for more videos.
@pkentertainment21433 жыл бұрын
Thankyou somuch..i really need this
@CodeBeauty3 жыл бұрын
You will understand why and when to use function pointers after watching this! 🤗🤗🥰
@pkentertainment21433 жыл бұрын
@@CodeBeauty thankyou ❤️🥰
@Kenforbes3 Жыл бұрын
Thanks!
@jhordyperez15943 жыл бұрын
excellent video, little by little I'm starting to love this girl, because of how smart she is and the dedication that she puts into each video. Thank you for taking the time to publish this kind of videos. much that helps many of us to better understand ......
@CodeBeauty3 жыл бұрын
Thank you for supporting me! It requires a lot of hard work to prepare, film, and edit the videos, but it also brings me great joy! 💗💗💗
@phoebewell36533 жыл бұрын
I really need this, thanks, it's very helpful
@CodeBeauty3 жыл бұрын
🙏💙
@herlim69273 жыл бұрын
@@CodeBeauty 🙏 love from india
@CodeBeauty3 жыл бұрын
@@herlim6927 💚🧡🇮🇳
@bene81143 жыл бұрын
Saldina. Many thanks for ur courses. One thumb up is not enough.
@CodeBeauty3 жыл бұрын
Thank you so much! 🙏💙💙
@TheJacov3 жыл бұрын
What did I learn? Two things. 1. The code builds and runs, but it generates about a dozen warnings so I had to track down the problem to get rid of them, I prefer code that doesn't generate warnings. 2. If you want to run both sorts at the same time, you must use two different pointers, that was an easy fix. Problem 1 was harder to track down but I figured it out. It seems that the .size function returns unsigned values, while the loop variables are signed and the < causes complaints. The solution I came up with was to type cast the loop variables in the comparison part of the for loops to (unsigned), this made the warnings go away and made me happy.
@pedrolobo98353 жыл бұрын
Excellent video. I think it's simpler and pratical to call the compare function directly in customSort. Like this: int main(){ vector numbersVector = {4, 2, 1, 3, 6 ,5}; customSort(numbersVector, descendingCompare); printNumbers(numbersVector); system("pause>0"); }
@muhammadumair65543 жыл бұрын
Great videos, hope you complete 100k subscribers soon❣️
@CodeBeauty3 жыл бұрын
I hope so ☺️ Thank you! 🙏💙
@astudent7973 жыл бұрын
Awesome explanation
@CodeBeauty3 жыл бұрын
🙏💙
@HoangNguyen-x5x3s Жыл бұрын
I used to hate using Pointers but I start to love it now This vid pushes my peak interest further
@daniloheat2 жыл бұрын
Callback functions have always been a problem for me as I learn them and immediately forget them. But your explanation is very straightforward and I finally learnt what each part of the syntax is doing. Thank you very much. Keep doing these great videos.
@sirmovielover2 жыл бұрын
Thank you. My professor assigned a function pointer assignment, but he didn't have time to really explain it. This really helped :-)
@JC-px9mk3 жыл бұрын
Thank you for all the videos, they already taught and helped me a lot🥰 and you are kind of someone I look up to soo, just thank you and have a nice day
@CodeBeauty3 жыл бұрын
Making these videos is a lot of hard work but comments like this bring me a lot of joy! Thank you so much and I wish you happy learning and hope you'll have a great day! 🥰🥰🤗
@lindeanchuang81157 ай бұрын
Hi, I am from Taiwan. Thank you very much! Your tutorial is always very clear! I love the style you teach!
@amk22983 жыл бұрын
ur voice is very sweet, thanks saldina for this awesome video🙏
@CodeBeauty3 жыл бұрын
🙏💙
@user-li7wn6qv7e2 жыл бұрын
i already know about function pointer but I got so much clarity in this video that I was missed. You are great...in simple Function pointers are used instead of switch case (i.e) to reduce the code
@shashankcool2 жыл бұрын
Thanks Saldina for explaining the function pointer concept with proper example. Please keep making such videos.
@vishwa26023 жыл бұрын
Thanks a lot ...❤️❤️❤️...
@CodeBeauty3 жыл бұрын
❤️❤️❤️
@remimonsel99442 жыл бұрын
Function pointers are awesome. That's programming art. Every time, I think I know everything but luckily with you and your channel, there is always something more.
@jasonchen97133 жыл бұрын
why do we need to vector& numbersVector, & here? any previous video cover this?
@tarnished_ofTheCGPA Жыл бұрын
i can not believe how easy you made it , thanks a lot ❤
@MrPassy4u Жыл бұрын
Been 20 years ago when I wrote my last c/c++ program at school. But this serie makes me want to code some old school tasks
@rafiullahafridi113 жыл бұрын
One of the best instructor Ms Saldina..... I am ur subscriber from Pakistan
@julyordinary75382 жыл бұрын
Best part is real life usage examples so really nice video
@tomwellington42552 жыл бұрын
I have found your C++ videos very down to earth and really easy to understand. Thank you!
@anwar69713 жыл бұрын
Very well explained. I understood very well.
@CodeBeauty3 жыл бұрын
🤞🤗🥰
@denisdobra36273 жыл бұрын
Omg you are the best programming 'teacher' on youtube
@CodeBeauty3 жыл бұрын
Thank you 🥰🥰 Fun fact, my programming teacher's name at University was Denis 😃😃
@Tonboswimmers3 жыл бұрын
unbelievable again, learnt so much from your this example, initially I feel lost trying to catch up with all the codes nest, now with this more complicated one, I get to see how it all flows. Never miss a lesson to learn from her, very well put together.
@CodeBeauty3 жыл бұрын
Happy to hear that ☺️🤗
@Ghisisan_3 жыл бұрын
Great video! Function pointers make sense and can be usefull but I really never heard of function pointers until now, even though I studied computer science(about 18 years ago)... 😁 Thanks for teaching me new things about programming.👍
@CodeBeauty3 жыл бұрын
Yep, they are very useful. I use them very often when I want to invoke a method of the parent class from the child class 🤗🤗😃
@rolandocruz15 Жыл бұрын
Made perfect sense to me. Thank you for putting this video together. The concept is complex, but you made it very easy to understand. I am now subscribed to your channel!
@burakabdulbakiulu2 жыл бұрын
Idk you have took any diciton course but you have a very smooth explaination.👍 Thank you very much.
@Lmn1683 жыл бұрын
thanks for the 10 hour course and everything
@CodeBeauty3 жыл бұрын
🙏💙
@acceleratorlevel6452 жыл бұрын
Hey thanks for the great explanation and where to use it, i kinda knew the syntax of func ptr but wasn't sure where to use them, this helped a lot!
@ethangold49003 жыл бұрын
I'm a beginner in C++ and I think I wouldn't get function pointers in my first try if I was on my own.. I first heard about function pointers in this video (the last video in your pointers playlist) and I learned a lot, thank you so much P. S. Your videos are great overall, not just this vid, so I subbed
@astet3 жыл бұрын
my 2 Year c++ in University was a lie. I love your Videos. Can you please make video about Iterations please!
@yt_bharat3 жыл бұрын
Your accent is really sweet ❤️ and Saldina you rock 😎
@CodeBeauty3 жыл бұрын
🙏💙💙
@angel_machariel2 жыл бұрын
Is there a special reason why - in Main() - the sort order function is passed to a functionpointer, and then the functionpointer is passed as a parameter to another functionpointer? You might as well pass the sort order method straight into the second sorting algorithm parameter. Why the extra indirection?
@boko76543 жыл бұрын
Hello, I hard a really hard time trying to understand direct and copy initialization. I couldn't tell the difference between: int a = 4; int a(4); When the compiler reaches int a = 4;, does the compiler first declare the variable a then the literal gets copied to a? The most confusing part is that there are braces as well. int a{4}; I couldn't tell if I should use with brackets or braces in this case. I would be highly appreciated if there will be a video dedicated to this soon. Your layman's terms explanations are spot on.
@nezbrun8725 ай бұрын
FWIW, function pointers have very practical use in embedded systems e.g., for dynamic interrupt callbacks, and as performant alternatives to lengthy case statements in state machines.
@deneristargerian67553 жыл бұрын
Love your videos! Your explanations are excellent!
@CodeBeauty3 жыл бұрын
🤗🥰🥰
@greciahernandez5422 Жыл бұрын
Thank youu!! your explanation is really clear throughout
@swayam503 жыл бұрын
You're amazing, thanks for keeping the spirit of C++ alive ❤️❤️❤️
@CodeBeauty3 жыл бұрын
❤❤❤!
@holyshit9223 жыл бұрын
I use function pointers when i write list (sorted instert function or sorting function) or a program for numerical integration (fe with rectangles, trapezoids, or Simpson)
@typhoond44993 жыл бұрын
Exactly what I needed. Thank you very much Saldina!
@CodeBeauty3 жыл бұрын
🥰🥰🤗
@shrinivasgadade51533 жыл бұрын
your videos are simple and concise and make us love programming, thank you for such awesome videos.
@tuazulyrojoeljean Жыл бұрын
Yep, definitely very helpful, thank you very much, Saldina!
@kayd21432 жыл бұрын
Great video, easy to understand. I understood what the code that I thought looked complex in your video meant and I surprised myself. All thanks to your explanation
@khavovan82013 жыл бұрын
So easy to understand. Thank you so much!!!
@yassinekhadiri68292 жыл бұрын
Thank You For Your Amazing Explanation :)!
@anjalililhare71285 ай бұрын
Amazing example. Thank you
@mytechnotalent3 жыл бұрын
In your print function would you want to use a const reference to ensure nothing is changed? I could be wrong but wanted to check. GREAT video very helpful for function pointers and quite efficient.
@CodeBeauty3 жыл бұрын
It is a good idea. If the job of the function is just to write out elements it shouldn't change them, and to make sure that they'll not be changed we can use const 🤗🤗
@mytechnotalent3 жыл бұрын
@@CodeBeauty Thank you Saldina!
@billjohnes93803 жыл бұрын
@@CodeBeauty We can also use a range-based for loop. ;)
@musolodemiano79822 жыл бұрын
Your videos are really nice and enchanting
@TheJacov3 жыл бұрын
Oh yea, I have to agree with Denerius Targerian, your videos are very informative and easy to follow.
@nigusdibekulu52153 жыл бұрын
Love u saldina❤❤, u r the best. from Ethiopia
@yousefibrahim88623 жыл бұрын
Hello CodeBeauty, I'm just wondering why don't you instead use std::sort to sort the vectors?
@stefanopilone9573 жыл бұрын
Thank You, very clear explanation, so I could recap qsort() function
@CodeBeauty3 жыл бұрын
🤗🥰🥰
@SimpleY_3 жыл бұрын
Can you please make a video about short-cuts in Visual Studio? I see that you often use short cuts, for example to multi-line comment. Short cuts can save us a lot of time, but many people don't know how to use them. Thanks in advance!
@CodeBeauty3 жыл бұрын
That is great idea. I'll definitely make that video in the future 😃🤗🤗
@per-erikjansson17742 жыл бұрын
Great with simple explanations, I think the use of std::function may also have been commented. I have used that especially inside classes instead of pointers to member functions.
@anhtravu3 жыл бұрын
Thank for your sharing, that very helpful. Could you please make a season sharing the callback function ? Why callback functions should be static ? Thank you in advance !
@suca68303 жыл бұрын
Is there a way to test the performance of codes, that uses function pointers as parameters and other takes parameters without using func pointers?
@CodeBeauty3 жыл бұрын
Microsoft has Diagnostic tools that can help you measure app performance in Visual Studio. Here are two links that can help you learn more about that 🤗🤗 docs.microsoft.com/en-us/visualstudio/profiling/beginners-guide-to-performance-profiling?view=vs-2019 docs.microsoft.com/en-us/visualstudio/profiling/memory-usage?view=vs-2019
@peacefuldeityspath3 жыл бұрын
Omg thx i really needed this for my memory Editor gui :D
@CodeBeauty3 жыл бұрын
🤗🤗🥰
@paulaner9793 жыл бұрын
2 Questions: #1: Why not put an additional input in customSort like "bool ascending" and use if (ascending) {do ascending stuff...} else {do descending stuff...}? Using your customSort would need an if-statement to assign the function-pointer anyway... #2: I'd like to parse a string containing some formular (like "exp(x) * x^2 + sin(x)" or something like that). Feels like function pointers might be the way to go here (although I wouldn't know a nice and clean way to do this). Any hints on how to do that?
@Kinsey_3 жыл бұрын
I love your videos! Please continue to make them. It’s a good supplement to class.
@CodeBeauty3 жыл бұрын
🙏💙
@ucNguyen-hg2xz3 жыл бұрын
Very nice
@CodeBeauty3 жыл бұрын
Thanks, but how did you find this video? 🧐😲 It is still unlisted 😁😅
@ucNguyen-hg2xz3 жыл бұрын
@@CodeBeauty Really? I've finished it :3
@samuelseshadri33373 жыл бұрын
Hi Saldina. Please do a video on friend function, inline, and Virtual function in detail
@CodeBeauty3 жыл бұрын
This video should help you understand virtual and pure virtual functions kzbin.info/www/bejne/imnJZZSgqauIb8k 🤗🤗
@samuelseshadri33373 жыл бұрын
@@CodeBeautyPlease on friend function too .... 😊😊
@samuelseshadri33373 жыл бұрын
@@CodeBeauty It's very hard for a learner to find a tutor like you if KZbin wasn't there at present. Please do more videos on C++ so we could all learn many more concepts which were not taught at University level. I learnt many things from you than my university classes. Thank you Saldina (Beauty with brain 😀)
@mahdavimail8 ай бұрын
This one was good training+usecase thanks
@CodeBeauty8 ай бұрын
You're welcome 🥰
@Laberyio Жыл бұрын
Hello , i have maybe a dumb question but at line 37 is it possible (and good) to directly invoke either ascendingCompare or descendingCompare inside your customSort without storing it into your pointer at line 36 ? Would it be beneficial ?
@OzzFan10003 жыл бұрын
Any chance you might consider doing some intermediate programming tutorials? Like one step up from beginner?
@CodeBeauty3 жыл бұрын
Can you suggest some topics that you'd like to see in the future 🤗🤗🥰
@OzzFan10003 жыл бұрын
@@CodeBeauty maybe the basics of setting up a GUI in Windows? Like what the basic structure is for creating a window class? Or if that's more on the advanced side, perhaps showing how to customize a Visual Studio C++ windows starter application?
@yash97256 ай бұрын
understood! thanks for the video!
@alifawzi81973 жыл бұрын
keep the cool work that you doing miss saldina
@GuidoMoreira3 жыл бұрын
Thank you for your explanation. I am learning a bit of C++ and have a question, if that's ok. I have come across passing functions as arguments as I needed to do it. In particular, I have a class and a member function is "attached" via another member function. So I declare the function pointer in the class and pass the desired function from the main program to the class via the attacher function which receives the adequate function in its arguments. Buuut, for some reason I have been able to do it by defining the attacher function and its arguments is not a pointer, like void attacher(double funfun(int v)){member = funfun;} Does this mean that the attacher is passing funfun by value? Like, making a copy of the function?
@ShayHowardBennett3 жыл бұрын
Another banger Sald, keep it comin!
@muneeburrehman46902 жыл бұрын
Can we decide on run time that which function's address will be stored in our function pointer?
@inayatkhan20613 жыл бұрын
Can you make videos where you explore famous c++ libraries and the most important options that they offer?
@christiancarter2552 жыл бұрын
I'm guessing that without the parentheses, we'd output to the console the address location (from RAM) of the function. 2:55 Oh! I was right! :) That's pretty cool. This was a very good and practical use of function pointers. I was experimenting with them, but hadn't imagined that this could be done with them! :)
@fireballgfx3 жыл бұрын
Ok now I'm able to build a while loop with a function pointer call inside. All fired methods have to take care to change the address of the function ptr to that method who have to be called next. In the case I would like to pass some variables I will use a void* - that sounds great!
@arod32953 жыл бұрын
when I used "cout
@st0nks225 Жыл бұрын
did you find out why? XD it happened the same to me now
@dominiclogue59243 жыл бұрын
Thank you for this great video.
@CodeBeauty3 жыл бұрын
🤗🥰🥰
@painsme23 жыл бұрын
Very useful. Thanks!
@CodeBeauty3 жыл бұрын
🤗🤗🥰
@elsareji96853 жыл бұрын
Can you please upload a video abt pass by value and pass by reference?
@CodeBeauty3 жыл бұрын
Myb this video can help you 🤗🤗 kzbin.info/www/bejne/h2XUl6Cri5qsfJo
@elsareji96853 жыл бұрын
@@CodeBeauty Thankyouu!! :D
@sergeistalarkin79693 жыл бұрын
Спасибо ^_^
@CodeBeauty3 жыл бұрын
Пожалуйста 🤗🥰🥰
@kasundinesh3 жыл бұрын
Hi Saldina, Can you do a series for design patterns?
@user-ez4gr3xv3b3 жыл бұрын
Why when I do cout
@billjohnes93803 жыл бұрын
cout
@Asterics.10 ай бұрын
@@billjohnes9380 Why she can simply cout
@realfootball3383 жыл бұрын
So CPP can be completely Object Oriented and Functional language. As I know we can create functors from CPP classes
@programthis380511 ай бұрын
at the end why dont you just pass in the function without the ()? good video made me really get it
@martinfranklin82823 жыл бұрын
How you implement a custom event ? Function pointers must be equivalent to delegate in c# I did see some code in Microsoft website but it was specific to visual studio and You couldn't write that code in qt in qt they using signals and slots
@CodeBeauty3 жыл бұрын
Yep, function pointers are similar to delegates. I use them very often to invoke a method from a parent class in the child class 🤗🤗