STL std::list | Modern Cpp Series Ep. 118

  Рет қаралды 5,825

Mike Shah

Mike Shah

Күн бұрын

►Full C++ Series Playlist: • The C++ Programming La...
►Find full courses on: courses.mshah.io/
►Join as Member to Support the channel: / @mikeshah
►Lesson Description: In this lesson I give you an introduction to the std::list data structure. Lists are node based data structures using pointers behind the scenes to help you achieve fast insertion and removal at the trade-off of random access.
►KZbin Channel: / mikeshah
►Please like and subscribe to help the channel!
►Join our free community: courses.mshah....

Пікірлер: 30
@scullyy
@scullyy Жыл бұрын
I've never had a use for linked lists (yet), but I have a soft spot for them. It was while learning python and creating my own linked list class, that programming finally "clicked" for me. Instead of needing to look at the tutorial and just copy/paste, I could actually create every method on my own. 🙂
@AleksandreTitberidze
@AleksandreTitberidze 10 ай бұрын
Keep up the good work Mr Mike this video has been very helpful. Your teaching method is one of the best I have seen on the internet
@MikeShah
@MikeShah 10 ай бұрын
Cheers, thank you!
@thestarinthesky_
@thestarinthesky_ Жыл бұрын
@24:10, i think in the 'merge' operation of a std::list, nodes from one list ( 'other' in this context) are reorganized into another list (list). This is done by adjusting the next and previous pointers of the nodes, rather than moving or copying the data they contain. This makes the merge operation more efficient than similar operations on other data structures, like arrays or vectors. After the merge operation, ' other' no longer contains any nodes. Its internal pointer to its first node (i.e., its "head") is set to nullptr, giving the impression that the list is now empty. In essence, 'other' as a standalone list no longer contains any elements. However, it's important to note that the nodes from 'other' have not been destroyed or removed. Instead, they've been linked into list. This is the beauty of the linked list data structure and the merge operation: it can reorganize data efficiently by manipulating pointers, without the need to physically move or copy the data. That's my understanding of merge in std::list. Thanks for the great video Mike! 👏 I am watching the whole STL series for the second time and learning new thingS.
@MikeShah
@MikeShah Жыл бұрын
Awesome! Yes, linked list can really do some neat things :)
@willofirony
@willofirony Жыл бұрын
Just a heads uo; Splice can also be used to move an element within a list. Details in cppreference std::list::splice.
@MikeShah
@MikeShah Жыл бұрын
Neat -- it would be a flaw in the design in my opinion if we could not splice within the same list.
@mehedihassan-pf6yh
@mehedihassan-pf6yh Жыл бұрын
youre one of the different teacher sir, please show us something that others don't share , like u did in this video
@MikeShah
@MikeShah Жыл бұрын
Cheers, thank you for the kind words!
@mehedihassan-pf6yh
@mehedihassan-pf6yh Жыл бұрын
thanks if you touch any topics ,please discuss deeply by showing cpprefferance , and this helps learning when u talk half an hour and show everything inside out.god bless u@@MikeShah
@viliamjr
@viliamjr 9 ай бұрын
Amazing tutorials about STL, very handy!
@MikeShah
@MikeShah 9 ай бұрын
Cheers!
@thestarinthesky_
@thestarinthesky_ Жыл бұрын
@4:16 When you say as long as we have iterator , this also mean we are having O(i) if i is the position of the list in the std::list object right? it wouldn't be O(1) if we calculate iterator part too.
@MikeShah
@MikeShah Жыл бұрын
Correct, if we have an iterator then we can insert in O(1)
@thestarinthesky_
@thestarinthesky_ Жыл бұрын
@@MikeShah Thank you so much.
@qcnck2776
@qcnck2776 Жыл бұрын
Thanks much!
@MikeShah
@MikeShah Жыл бұрын
Cheers!
@mehedihassan-pf6yh
@mehedihassan-pf6yh Жыл бұрын
keep going dont stop mate
@MikeShah
@MikeShah Жыл бұрын
More on the way 🙂
@ghulam2545
@ghulam2545 Жыл бұрын
Helpful and informative, thanks for continuing the series. How about having light theme over dark for tutorials.
@MikeShah
@MikeShah Жыл бұрын
Cheers. Will consider that
@VoidloniXaarii
@VoidloniXaarii Жыл бұрын
You're so cool, thanks again
@MikeShah
@MikeShah Жыл бұрын
Cheers!
@VoidloniXaarii
@VoidloniXaarii Жыл бұрын
​@@MikeShahstill learning going thought it again. Thank you for making.. reusable code 😅
@MikeShah
@MikeShah Жыл бұрын
@@VoidloniXaarii cheers! Enjoy!
@codigo-nodosyvfx
@codigo-nodosyvfx Жыл бұрын
Great video
@MikeShah
@MikeShah Жыл бұрын
Cheers!
@minecraftcookie2929
@minecraftcookie2929 Ай бұрын
Hey mike I have a question -> First look at this code -> int main() { std::list li = { 321, 432, 12, 34, 531 }; std::list::iterator it = li.begin(); for(it; it != li.end(); it++){ std::cout
@MikeShah
@MikeShah Ай бұрын
Hmm, perhaps after the final node, the 'next' pointer points back to the head then -- that seems to be the behavior I'm getting here: godbolt.org/z/fYcv1Yjz7 This still is behavior that I would not tend to rely on :)
@minecraftcookie2929
@minecraftcookie2929 Ай бұрын
@@MikeShah Thank you mike. I guess i will rule out this behavior as some kind of optimization maybe to prevent accessing non-reserved memory.
STL std::forward_list | Modern Cpp Series Ep. 119
29:09
Mike Shah
Рет қаралды 2 М.
STL std::deque  | Modern Cpp Series Ep. 120
28:43
Mike Shah
Рет қаралды 3,7 М.
БАЙГАЙСТАН | 3 СЕРИЯ | ДУБАЙ |bayGUYS
44:17
bayGUYS
Рет қаралды 1,8 МЛН
Back To Basics: C++ Containers
31:41
javidx9
Рет қаралды 193 М.
STL std::set | Modern Cpp Series Ep. 121
24:15
Mike Shah
Рет қаралды 4,8 М.
Master Pointers in C:  10X Your C Coding!
14:12
Dave's Garage
Рет қаралды 348 М.
Arenas, strings and Scuffed Templates in C
12:28
VoxelRifts
Рет қаралды 108 М.
Use Arc Instead of Vec
15:21
Logan Smith
Рет қаралды 168 М.