Umm let me put it this way, since I go to a bunch of #C++ channels, when someone joins and says is "teach yourself C++ in 21 days a good book to learn C++?" the response by everyone in the channel is "lol" Followed by "Try teach yourself C++ in 10 years, even if you are Einstein himself you couldn't learn C++ in 21 days". Books like that leave out so much it isn't even funny. C++ has dozens of incredibly advanced topics that can take up a book by themselves. RTTI, templates, the STL, iostreams, exception handling, those are just a few, and each of them has probably a handful of books about them.
The moral is, "teach yourself ***** in 21 days" (or even worse) "teach yourself *** in 24 hours" are jokes, along with "*** for dummies". If you want real authoritative knowledge on C++ you need to go to the authoritative sources. "The C++ Programming Language" is a great reference, because it was written by the man who invented C++ (although it is certainly not for beginners). If you want a good list of books to get on C++ I'd go to http://www.rafb.net/efnet_cpp/books/
, and I can personally vouch for most of those books since I own and have read most of them. For a larger selection check out http://www.accu.org/bookreviews/public/index.htm
and also www.cuj.com
has tons of online articles that are helpful.
Oh and btw, about APIs, APIs are not really considered part of the C++ language the reason is, they are usually non-portable. For example WinAPI, thats not going to help me much if I'm writing an application for Linux, however if I write it strictly in C++ it will work on Linux, Windows, Mac, or any other OS with a C++ library. But yes you are right, APIs can make things much more complex because each API is usually a book (or more) in and of itself. To learn all of C++ and all the APIs would most likely be an impossible task, you'd be dead long before you finished, so the best idea is focus on APIs you actually intend to use.
Oh one other thing, another thing that most C++ coders will say when they tell you to buy books is stay away from books by a man named Herbert Schildt.