Не надо доступаться к вектору через указатель - нет гарантии, что это будет работать в общем случае. Надо пользоваться итераторами или операциями доступа, объявленными в самих контейнерах (типа []).
Вот пример, как надо и НЕ НАДО работать со станд.контейнером vector<int>:
Код: Выделить всё
vector<int> v;
int a[] = {1,1,2,3,5,8,13,21,0};
v.insert(v.end(), a, a+sizeof(a)/sizeof(int));
// 1. Стандартный доступ через итератор
vector<int>::iterator it = v.begin();
for (; it != v.end(); ++it)
cout << *it << endl;
// 2. Доступ через указатель
// ВНИМАНИЕ: непереносим (возможен в реализациях, где vector<T>::iterator эквивалентен T*)
int* pn = v.begin();
for (; *pn; ++pn)
cout << *pn << endl;