📚 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_mitchell11 ай бұрын
@@arod3295 This is my behaviour too, but I'm using the Terminal and not VSCode. cout
@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! 🙏💙💙
@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
@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 );
@streambumper2502 жыл бұрын
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 =)
@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
@remimonsel994410 ай бұрын
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 ❤
@CodeBeauty10 ай бұрын
❤️❤️💪
@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.
@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
@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! 💗💗💗
@HoangNguyen-x5x3s Жыл бұрын
I used to hate using Pointers but I start to love it now This vid pushes my peak interest further
@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.
@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.
@shahzahir99903 жыл бұрын
It's nice to see you again Mam🙂
@CodeBeauty3 жыл бұрын
🥰🥰🤗
@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! 🥰🥰🤗
@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 🤗🤗😃
@shashankcool2 жыл бұрын
Thanks Saldina for explaining the function pointer concept with proper example. Please keep making such videos.
@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.
@sirmovielover2 жыл бұрын
Thank you. My professor assigned a function pointer assignment, but he didn't have time to really explain it. This really helped :-)
@phoebewell36533 жыл бұрын
I really need this, thanks, it's very helpful
@CodeBeauty3 жыл бұрын
🙏💙
@herlim69273 жыл бұрын
@@CodeBeauty 🙏 love from india
@CodeBeauty3 жыл бұрын
@@herlim6927 💚🧡🇮🇳
@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 ☺️🤗
@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
@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
@bene81143 жыл бұрын
Saldina. Many thanks for ur courses. One thumb up is not enough.
@CodeBeauty3 жыл бұрын
Thank you so much! 🙏💙💙
@lindeanchuang81156 ай бұрын
Hi, I am from Taiwan. Thank you very much! Your tutorial is always very clear! I love the style you teach!
@tomwellington42552 жыл бұрын
I have found your C++ videos very down to earth and really easy to understand. Thank you!
@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
@pkentertainment21433 жыл бұрын
Thankyou somuch..i really need this
@CodeBeauty3 жыл бұрын
You will understand why and when to use function pointers after watching this! 🤗🤗🥰
@pkentertainment21433 жыл бұрын
@@CodeBeauty thankyou ❤️🥰
@denisdobra36273 жыл бұрын
Omg you are the best programming 'teacher' on youtube
@CodeBeauty3 жыл бұрын
Thank you 🥰🥰 Fun fact, my programming teacher's name at University was Denis 😃😃
@tarnished_ofTheCGPA Жыл бұрын
i can not believe how easy you made it , thanks a lot ❤
@swayam503 жыл бұрын
You're amazing, thanks for keeping the spirit of C++ alive ❤️❤️❤️
@CodeBeauty3 жыл бұрын
❤❤❤!
@nezbrun8724 ай бұрын
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.
@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
@shrinivasgadade51533 жыл бұрын
your videos are simple and concise and make us love programming, thank you for such awesome videos.
@Lmn1683 жыл бұрын
thanks for the 10 hour course and everything
@CodeBeauty3 жыл бұрын
🙏💙
@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"); }
@astudent7973 жыл бұрын
Awesome explanation
@CodeBeauty3 жыл бұрын
🙏💙
@vishwa26023 жыл бұрын
Thanks a lot ...❤️❤️❤️...
@CodeBeauty3 жыл бұрын
❤️❤️❤️
@amk22983 жыл бұрын
ur voice is very sweet, thanks saldina for this awesome video🙏
@CodeBeauty3 жыл бұрын
🙏💙
@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!
@anwar69713 жыл бұрын
Very well explained. I understood very well.
@CodeBeauty3 жыл бұрын
🤞🤗🥰
@jasonchen97133 жыл бұрын
why do we need to vector& numbersVector, & here? any previous video cover this?
@julyordinary75382 жыл бұрын
Best part is real life usage examples so really nice video
@deneristargerian67553 жыл бұрын
Love your videos! Your explanations are excellent!
@CodeBeauty3 жыл бұрын
🤗🥰🥰
@typhoond44993 жыл бұрын
Exactly what I needed. Thank you very much Saldina!
@CodeBeauty3 жыл бұрын
🥰🥰🤗
@rafiullahafridi113 жыл бұрын
One of the best instructor Ms Saldina..... I am ur subscriber from Pakistan
@Kinsey_3 жыл бұрын
I love your videos! Please continue to make them. It’s a good supplement to class.
@CodeBeauty3 жыл бұрын
🙏💙
@muhammadumair65543 жыл бұрын
Great videos, hope you complete 100k subscribers soon❣️
@CodeBeauty3 жыл бұрын
I hope so ☺️ Thank you! 🙏💙
@yt_bharat3 жыл бұрын
Your accent is really sweet ❤️ and Saldina you rock 😎
@CodeBeauty3 жыл бұрын
🙏💙💙
@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
@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!
@stefanopilone9573 жыл бұрын
Thank You, very clear explanation, so I could recap qsort() function
@CodeBeauty3 жыл бұрын
🤗🥰🥰
@astet3 жыл бұрын
my 2 Year c++ in University was a lie. I love your Videos. Can you please make video about Iterations please!
@khavovan82013 жыл бұрын
So easy to understand. Thank you so much!!!
@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)
@burakabdulbakiulu2 жыл бұрын
Idk you have took any diciton course but you have a very smooth explaination.👍 Thank you very much.
@greciahernandez5422 Жыл бұрын
Thank youu!! your explanation is really clear throughout
@tuazulyrojoeljean Жыл бұрын
Yep, definitely very helpful, thank you very much, Saldina!
@TheJacov3 жыл бұрын
Oh yea, I have to agree with Denerius Targerian, your videos are very informative and easy to follow.
@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.
@anjalililhare71284 ай бұрын
Amazing example. Thank you
@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?
@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 😃🤗🤗
@musolodemiano79822 жыл бұрын
Your videos are really nice and enchanting
@peacefuldeityspath3 жыл бұрын
Omg thx i really needed this for my memory Editor gui :D
@CodeBeauty3 жыл бұрын
🤗🤗🥰
@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.
@ShayHowardBennett3 жыл бұрын
Another banger Sald, keep it comin!
@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. ;)
@dominiclogue59243 жыл бұрын
Thank you for this great video.
@CodeBeauty3 жыл бұрын
🤗🥰🥰
@yassinekhadiri68292 жыл бұрын
Thank You For Your Amazing Explanation :)!
@vclexamples3 жыл бұрын
I like to use the "function" expression (#include) instead. Even better, lambdas.
@painsme23 жыл бұрын
Very useful. Thanks!
@CodeBeauty3 жыл бұрын
🤗🤗🥰
@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! :)
@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
@yash97255 ай бұрын
understood! thanks for the video!
@ElifArslan-l9g2 жыл бұрын
amazing explanation
@HengOngHuatAh2 жыл бұрын
Thank you so so so much!!!
@mahdavimail7 ай бұрын
This one was good training+usecase thanks
@CodeBeauty7 ай бұрын
You're welcome 🥰
@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 !
@inayatkhan20613 жыл бұрын
Can you make videos where you explore famous c++ libraries and the most important options that they offer?
@nigusdibekulu52153 жыл бұрын
Love u saldina❤❤, u r the best. from Ethiopia
@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 😀)
@moularaoul6433 жыл бұрын
Thanks!!!
@CodeBeauty3 жыл бұрын
❤️❤️❤️
@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!
@Kenforbes3 Жыл бұрын
Thanks!
@virgoash77753 жыл бұрын
Thanks 😌.
@unpersonownlife3 жыл бұрын
Cool video, but usually in OOP you would use interfaces to abstract the compare mechanism. You won't usually resort to passing function pointers.
@CodeBeauty3 жыл бұрын
With interfaces every derived class needs to have its own implementation, and here we use the same implementation for both tasks. Function pointers are also very useful when you want to invoke a parent class method from the child class 🤗🤗
@unpersonownlife3 жыл бұрын
@@CodeBeauty right! As someone who leans more to C I can totally relate to fine balance to not "over-engineer"! 😅
@arod32953 жыл бұрын
when I used "cout
@st0nks225 Жыл бұрын
did you find out why? XD it happened the same to me now
@samer8203 жыл бұрын
How could your "cout
@yousefibrahim88623 жыл бұрын
Hello CodeBeauty, I'm just wondering why don't you instead use std::sort to sort the vectors?
@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?
@scrpld71113 жыл бұрын
You have a good thing going on keep up the good work. I think it's possible to do, but would be nice to see a code that first ask for mathematical equation and then solves it with user given numbers also. But I think this kinds of programs have been made already like MathCad for example and others, but I think it could be a good challenge to do.
@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?
@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 ?
@siddharthasarmah92663 жыл бұрын
Well Saldina, can you make a video on const char* which is used as a string in c/c++. It doen't make much sense to me, so if you can, then please make a video on that. Thanks! Love your videos😊
@wcchang33212 жыл бұрын
Great video!
@realfootball3383 жыл бұрын
So CPP can be completely Object Oriented and Functional language. As I know we can create functors from CPP classes
@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?