Scott Meyers calls C++ a "federation of languages": there's the OOP C++ part, what someone commonly will think when they hear C++, C, templates, and the STL. C++ as a whole is considered a multi paradigm language because, with a little discipline, you can use it to write in multiple programming paradigms. The C part of C++ is conducive towards structural programming, the traditional OOP part towards, obviously OOP and templates towards generic programming. I'm not sure if I would classify the STL under a single paradigm, but it is definitely like its own language which does have many features that come from functional programming languages.

I've used a few of these here and there but let's take a deeper look at these facilities.