I was under the assumption that STL functions could be used only with STL data containers (like vector) until I saw this piece of code:
vector
#include
Pointers model Trivial Iterator, and pointer from arrays model Random Access Iterator. So yes, it's perfectly legal.
If you are interested on the usage constraints of each S(T)L algorithm, familiarize yourself the iterator models.