Почему не компилируется код при подключении vector?
Вероятнее всего, где-то в предыдущем хедере — в том, что находится перед нашим <vector> — что-то не закрыто (пространство имён, функция и т.д.)
UPD2. Получилось повторить ошибку таким кодом.void x() {
#include <vector>
};
Если вместо функции x() взять класс или пространство имён, ошибка будет другая.
Так что 90%, что вы не сбалансировали скобки в функции.
Так, ошибку указали - уже хорошо. Осталось привести код.