The C++ Standard says in 16.2/2
A preprocessing directive of the form
#include <h-char-sequence>
new-line searches a sequence of implementation-defined places for a
header identified uniquely by the specified sequence between the < and > delimiters
The implementation-defined means that where and headers are searched and how headers location should be specified is specific to particular compiler. In fact, it is possible implementations may not use a one header in one file convention, but some fancy packaging systems, for instance all a library is supposed to ship headers in .zip archive location of such archive is given to compiler, then compiler takes care of extracting headers from it, etc.
What it means is that you are supposed to check documentation of compiler you are using for details about how to specify so called include directories, location of headers.
In case of GCC compiler, use -I option - see Options for Directory Search in the manual for details. You can also use C_INCLUDE_PATH or CPLUS_INCLUDE_PATH environment variables.
Related question is How to add a default include path for gcc in linux?