Assuming these classes are all dynamicpolymorphic/dynamic (which they need to be to use typeid like this), you can just use dynamic_cast instead:
template <typename T> T* GetComponent() {
for (Component* c : _components) {
if (T *tc = dynamic_cast<T *>(c)) return tc;
}
return nullptr;
}