Сделайте это STL способом и передайте итераторы, а не контейнеры:
//Beware, brain-compiled code ahead!
template<typename It>
void f(It begin, It end)
{
typedef typename std::iterator_traits<It>::value_type cont;
typedef typename cont::const_iterator const_iterator; // note the const_ pfx
const_iterator i = begin->begin();
// ...
}
int main()
{
vector<vector<int> > vvi;
f(vvi.begin(), vvi.end());
return 0;
}