typedefテンプレートもどき その2

structを使ってみる。

#include <iostream>
#include <vector>

using namespace std;

template<class T>
struct vecvec {
  typedef vector< vector<T> > type;
};

void func(vecvec<int>::type& vv) {
  for (vecvec<int>::type::const_iterator i = vv.begin() ; i != vv.end() ; i++) {
    for (vector<int>::const_iterator j = (*i).begin() ; j != (*i).end(); j++) {
      cout << *j << endl;
    }
  }
}

int main() {
  vecvec<int>::type vv;

  vector<int> v1;
  v1.push_back(1);
  v1.push_back(2);
  v1.push_back(3);

  vector<int> v2;
  v1.push_back(11);
  v1.push_back(22);
  v1.push_back(33);

  vv.push_back(v1);
  vv.push_back(v2);


  func(vv);

  return 0;
}

func()をテンプレート関数にはできず。
うーん、素直にvector< vector >と宣言した方がいいかも。