CppCon 2018: Jonathan Boccara “105 STL Algorithms in Less Than an Hour”

preview_player
Показать описание


We are all aware that we should know the STL algorithms. Including them in our designs allows us to make our code more expressive and more robust. And sometimes, in a spectacular way.

But do you know your STL algorithms?

In this presentation, you’ll see the 105 algorithms that the STL currently has, including those added in C++11 and C++17. But more than just a listing, the point of this presentation is to highlight the different groups of algorithms, the patterns they form in the STL, and how the algorithms relate together. And all this in an entertaining way.

This kind of big picture is the best way I know to actually remember them all, and constitute a toolbox chock-full of ways to make our code more expressive and more robust.


Jonathan Boccara, Murex

Jonathan Boccara is a Principal Engineering Lead at Murex where he works on large codebases in C++.
His primary focus is searching how to make code more expressive. He has dedicated his blog, Fluent C++, to writing expressive code in C++.
He also gives internal trainings on C++ every day, in the short format called "Dailies".


*-----*
*-----*
Рекомендации по теме
Комментарии
Автор

Haha. That world map. As nerdy as it gets.

Loving it.

schleppel
Автор

Conor Hoekstra mentioned this talk in his algorithm talks and I'll admit this is a wonderful presentation. Just the way to present the idea and the vehicles to carry the presentation are so nice that you can't help but want to just dabble a tiny bit into algorithms, just to get a piece of the presentation's atmosphere. Very nice presentation!

Yupppi
Автор

Clear, concise and entertained. Having been through all std algorithms at least once is absolutely educative.

I will remember your talk. Thanks man.

luisfsalazarb
Автор

As a teacher of programming, I'm absolutely amazed and inspired about / by this map. A great educational tool.

mindasb
Автор

Very clever. Not only will I remember the algorithms but I will remember the map too now :) Thanks for the good talk!

mrlithium
Автор

Amazing presentation. Absolutely recommended for every STL beginners!

andrewf
Автор

24:00 if you can write your algorithm as a call to reduce, then you have made an nonsequential parallel algorithm. If you want to introduce yourself to multithreaded programming, this is the best place to start, as it is the fundamental algorithm for highly parallel code.

NomoregoodnamesD
Автор

OMG, It's not just a video, It's a movie. I never enjoyed that much before !!

mayankdutta
Автор

Outstanding and I've learned quite a bit over the years by regularly visiting his web-site!

paulchoudhury
Автор

I somehow left lower_bound and upper_bound out of my notes, thought we might have missed it, so re-watched. Technically, the whole thing doesn't need to necessarily be fully sorted for a lower_bound call to work, as long as everything < val comes before the first element equal to val, and upper bound should be good as long as everything there onwards is > val. They both give correct answers for all val if the whole range is fully sorted, by far the neatest case.

jvsnyc
Автор

As someone who just started learning C++ and took a yt-course which only covered the syntax, this was very helpful and I'm excited to use it in my projects.

nikitademodov
Автор

That map was phenomenal !. Remarkable presentation!

bubblesort
Автор

Nice presentation. I was looking for a tutorial on the STL, and you did it very succinctly and well.

I'll be sure to check your blog out. Thanks.

srcmake
Автор

I love how much effort went into this. Great talk

Karsteski
Автор

Great talk! Few notes:
22:51 There is no such thing as is_partitioned_until in STL
51:51 C++17+: uninitialized_move, destroy, uninitialized_default_construct,

nichevo
Автор

I need to reread your slides. Great and innovative explanation!

shrektan
Автор

Thanks, Jonathan for the good talk, that was the most productive hour in my C++ learning history! 105 STL Algos in less an hour! Is your world map from a mindmap?

shaovoon
Автор

Amazing presentation and glance of STL algorithms

deepcoding...
Автор

Very informative talk. Here are the obligatory flies in the ointment:

30:29 adjacent_find does not take a value and it does not return the first position where there are two adjacent occurrences of the value. Instead, adjacent_find returns the first position where ANY two adjacent and equal values appear. (You can use the overload with binary predicate to perform the operation described, but that's, I reckon, not a common use case, and requires extra typing at least.)
31:40 This is misleading, *all* of lower_bound, upper_bound, equal_range and binary_search do a binary search (the complexity guarantees practically mandate that). binary_search is just the only algorithm to carry the binary search in its name. (If you are extra pedantic, equal_range actually does two binary searches, one of which may be limited in scope.)

TruthNerds
Автор

Awesome talk. Johnathon Boccara explains it beautifully! Acquired a few new tools :-)

grahambest