I'm a physics graduate student, so I'm implementing some relatively mathematical stuff in visual studio at the moment, and I was writing a class that would act like a very particular kind of array. This class didn't need to print out anything or take in any input from the user, so I didn't think to include the IO stream library. I did however include math.h because it had a function I needed, min. So everything's fine but then the compiler complains it doesn't knwo what min is, even though it found the library math.h. Next I try and add using namespace std; in the source code, in the header, it just spits back errors. Finally, quite by accident I include iostream, and all of a sudden everything works, I can put the using namespace std wherever I want, or just use std::min... I don't understand this at all. I thought iostream was just one particular library with functions for inputting and output? Why did i have to include this library to get namespace std, and ultimately the min function to work?