They use the Google Benchmark library. (I would read into it to answer your actual questions)
Also looks like randString generation will dominate for small arrays
for (size_t i = 0; i < kLookups; ++i) {
benchmark::DoNotOptimize(std::find(vec.begin(), vec.end(), randString()));
}
Also does that allocate a new string every call?
Yes, this benchmark is relatively flawed.
Allocating a new string simulates heap fragmentation.
The post was updated as the results were incorrect.