C++ Logo

sg20

Advanced search

Re: [isocpp-sg20] Education references for teaching data structures implementation in C++

From: Muneem <itfllow123_at_[hidden]>
Date: Fri, 29 May 2026 21:02:53 +0500
I agree that having an implementation as a reference can help. I am new to
c++ (1 year in) and it helps me as well, but I also think that having
mathematical information around such structures are all useful. The thing
about math is that it reassures you of correctness and efficiency,
alongside making it easy to reference in your memory.

If I were to start from scratch, I would want a teacher/teaching resource
that could first teach me the basics (classes and exceptions) then about
what each container/data structure is meant for, then exception safeties,
an implementation implementating such structures with exception safeties in
mind, then the formal math of it, like what does it mean for a ordered
map/set to be weakly ordered, and at last, the standard's interface. For me
the math and making use of performance gurrenties, with some common sense
is important. For example, I want to know when vectors may be impractical
enough to not be able to utilize holes in memory.

A resource for classes and exceptions, alongside exception safety would be
the classic book of Bjarne Stroustrup "The c++ programming language 4th
edition". For a more detailed view into each container, you would probably
have to write code yourself based on modren features. For performance and
how to make use of it, you would again need to show the assembly and how it
maps to the CPU usage, for mathematical definitions of certain orderings in
order maps/sets, a resource would be:
https://eceweb.uwaterloo.ca/~dwharder/aads/Abstract_data_types/ . I sadly
haven't found time to read the all of it (though I am planning to), but had
to read some parts out of necessity.

I don't know what the conference is exactly for but this is my view. Hope
it is useful.

On Mon, 25 May 2026, 1:59 am Ohlan,Kartik via SG20, <sg20_at_[hidden]>
wrote:

> I think almost every university uses Introduction to Algorithms(CLRS), but
> in my opinion one thing that would make CLRS more appealing to students is
> including practical implementations of data structures such as Red-Black
> Trees, AVL Trees, and similar concepts and how these are used in real life
> like Linux scheduler for example. My only issue with the book is that it is
> extremely mathematical.
>
> Some of my favorite books are Competitive Programming 4 and *Data
> Structures and Algorithm Analysis in C++*.
>
>
>
> When I studied data structures, my professor strongly emphasized
> implementing your own data structures from scratch—for example, recreating
> something like LLVM’s small_vector and pushing it until it breaks to truly
> understand its behavior.
>
>
>
> Best,
>
> Kartik
>
>
>
> *From: *SG20 <sg20-bounces_at_[hidden]> on behalf of Ville
> Voutilainen via SG20 <sg20_at_[hidden]>
> *Date: *Sunday, May 24, 2026 at 4:47 PM
> *To: *sg20_at_[hidden] <sg20_at_[hidden]>
> *Cc: *Ville Voutilainen <ville.voutilainen_at_[hidden]>
> *Subject: *Re: [isocpp-sg20] Education references for teaching data
> structures implementation in C++
>
> External.
>
> On Sun, 24 May 2026 at 23:03, Bjarne Stroustrup via SG20
> <sg20_at_[hidden]> wrote:
> >
> >
> > On 5/24/2026 3:34 PM, JOSE DANIEL GARCIA SANCHEZ via SG20 wrote:
> > > Dear all,
> > >
> > > I have been asked by a colleague about good teaching references
> > > (preferrrably books) for teaching basic implementation of data
> > > structures in C++.
> > >
> > > Any recommendations?
> >
> > Sorry no. I have never taught datastructures and I'm not up on what
> > materials people use for that. From what I have seem from students, I'm
> > rather suspicious on the quality of those courses.
>
> I have no idea either. I've never seen any decent materials for it,
> and wouldn't know where to find them.
>
> Not that I've ever needed to write a custom container, for example, either.
>
> I do understand the need for such. Being able to provide
> implementations that have various different trade-offs
> is certainly useful in all sorts of high-performance scenarios, which
> I luckily have never had to deal with. :)
>
> I wonder how the LLM suggestions of
>
>
> https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.amazon.co.uk%2FData-Structures-Algorithm-Analysis-United%2Fdp%2F032144146X&data=05%7C02%7Cko496%40drexel.edu%7C6d19e2ee64cc4cb1676a08deb9d5adf0%7C3664e6fa47bd45a696708c4f080f8ca6%7C0%7C1%7C639152524573967399%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=NquiiWe058c7N6r5CnOQtYz%2B%2BuPUZxAAiFgENo%2Fp7Jw%3D&reserved=0
> <https://www.amazon.co.uk/Data-Structures-Algorithm-Analysis-United/dp/032144146X>
>
> and
>
>
> https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.amazon.co.uk%2FProgramming-Program-Design-Including-Structures%2Fdp%2F1133526322&data=05%7C02%7Cko496%40drexel.edu%7C6d19e2ee64cc4cb1676a08deb9d5adf0%7C3664e6fa47bd45a696708c4f080f8ca6%7C0%7C1%7C639152524573985144%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=NJWpt4FGPb9yJJ%2B%2BdAQ0TuKbm1vV7rFkZCvWpgDxQUk%3D&reserved=0
> <https://www.amazon.co.uk/Programming-Program-Design-Including-Structures/dp/1133526322>
>
> and
>
>
> https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.amazon.co.uk%2FProblem-Solving-C-Walter-Savitch%2Fdp%2F0134448286&data=05%7C02%7Cko496%40drexel.edu%7C6d19e2ee64cc4cb1676a08deb9d5adf0%7C3664e6fa47bd45a696708c4f080f8ca6%7C0%7C1%7C639152524573997189%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=fgU%2FUIetjg9Ob9gSCz1Z4h0l0tyQR9FY%2F3pJQL9Bj2A%3D&reserved=0
> <https://www.amazon.co.uk/Problem-Solving-C-Walter-Savitch/dp/0134448286>
>
> fare. The middle one is ancient, but I have no idea whether that matters.
>
> I think the challenge here is to keep the students awake. I don't
> think talking about how to implement what std::vector and std::list
> do will do that. They would probably stay awake for 10 minutes when
> talking about the difference between std::list and std::forward_list,
> but something more interesting with a reasonable rationale would be needed.
> --
> SG20 mailing list
> SG20_at_[hidden]
>
> https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.isocpp.org%2Fmailman%2Flistinfo.cgi%2Fsg20&data=05%7C02%7Cko496%40drexel.edu%7C6d19e2ee64cc4cb1676a08deb9d5adf0%7C3664e6fa47bd45a696708c4f080f8ca6%7C0%7C1%7C639152524574009122%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=A8ZSp6GN2npjscAm%2BBGspUkAR9POReNo%2FHmUmZTqQvQ%3D&reserved=0
> <https://lists.isocpp.org/mailman/listinfo.cgi/sg20>
> --
> SG20 mailing list
> SG20_at_[hidden]
> https://lists.isocpp.org/mailman/listinfo.cgi/sg20
>

Received on 2026-05-29 16:03:10