Безопасно ли делать это с вложенным вектором?
Да, если вы хотите получить доступ только к внутреннему вектору и до тех пор, пока вызнать количество элементов, которые он содержит, и вы не пытаетесь получить доступ больше, чем это.
Но, видя сигнатуру вашей функции, кажется, что вы хотите получить доступ ко всем трем измерениям, в этом случае нет, это недопустимо.
Альтернативой является то, что вы можете вызывать функциюsome_function(size_t size, int array[])
для каждого самого внутреннего вектора (если это решает вашу проблему);и для этого вы можете сделать этот трюк (или что-то подобное):
void some_function(std::vector<int> & v1int)
{
//the final call to some_function(size_t size, int array[])
//which actually process the inner-most vectors
some_function(v1int.size(), &v1int[0]);
}
void some_function(std::vector<std::vector<int> > & v2int)
{
//call some_function(std::vector<int> & v1int) for each element!
std::for_each(v2int.begin(), v2int.end(), some_function);
}
//call some_function(std::vector<std::vector<int> > & v2int) for each element!
std::for_each(test.begin(), test.end(), some_function);