I am getting ready to write a programming competition on Tuesday (the Canadian Computing Competition) and I remember that last year it said that only standard libraries can be used. I was having trouble deciding which libraries are standard. I ended up using windows.h and when I suddenly realized that it was likely not standard I quickly commented-out a bunch of windows specific code. My question is, is there a list somewhere of all of the libraries considered as 'standard' in c++?

The draft standard will tell you what's legit as far as C++ goes. The competition might have another definition of "standard" though.

Pretty much everything that you find documented at www.cplusplus.com/reference, that's most likely what the competition will want you to stick with. If anything, they might allow the new (extended) set of standard libraries from the C++11 standard, which you will find described and listed in the draft that deceptikon linked to.

In between, there is also the TR1 libraries (Technical Report 1) which are basically the same as the additions that were made into C++11, but they appear in the std::tr1 namespace. You will find decent reference for them on the msdn page.

Also, you might want to double-check with them about this, because sometimes people colloquially talk about "standard libraries" in a way that includes not only the actual language-standard libraries, but also the native OS libraries like Win32 API libraries or POSIX libraries, and some might also accept libraries that are simply very widely used and recognized like Boost and other well-established libraries like OpenGL, SDL, libxml2, etc... So, you might want them to clarify what they mean exactly, because if they give challenges that are anything more than pure algorithmic, console programs, then it's impossible to use only standard libraries... Never mind, I checked the website, it doesn't seem like they would ask anything that would require more than basic algorithmic programming (read a file, run an algorithm, and spit out the answer).