Quote: "They are slower and more complicated."
I doubt you'd notice any speed difference, the contents of a vector are stored in a contiguous list just like normal arrays so the only additional overhead is from calling the [] operator, which is most likely going to be inlined thus there should be no speed difference when accessing.
Also, while vectors may have some 'complicated' features, you don't have to use them; you can easily write code as shown above that does the same thing as arrays but is better in every way.
Quote: "If you know you need 50 trees just declare int MyArrayOfTrees[50]; and be done with it. Simple. Easy."
vector<int> MyArrayOfTrees(50); Simple, Easy, More Powerful.