We all know the Big-O complexity of basic data structures. Arrays are O(n) for search. Hash maps are O(1). Linked lists are... well, complicated. But when I set out to build hashbrowns — a C++17 benchmarking suite comparing arrays, linked lists, and hash maps — I discovered that theory and practice are very different beasts.

Here's what I learned building this project from scratch, and why you should probably benchmark before you optimize.

I wanted a clean, educational project that would:

Implement dynamic arrays, linked lists, and hash maps from scratch

Benchmark insert, search, and remove operations