C++を勉強しているのですが、vectorがよくわかりません。

#include <iostream>
#include <vector>
using namespace std;
class hoge {
public:
 hoge() { cout << "hoge()" << endl; }
 ~hoge() { cout << "~hoge()" << endl; }
};
int main() {
 {
  vector< hoge* > v;
  for (int i = 0; i < 3; i++) v.push_back(new hoge);
  for (int i = 0; i < 3; i++) v.pop_back();
 }
 return 0;
}

スコープを抜けてvectorが削除されるときか、さもなくば
pop_back()で要素を削除したときにhogeのデストラクタを
呼び出して欲しいのですが、うまくいきません。

何かいい方法はないでしょうか。