Могу ли я передать адрес первого элемента вектора вектора непосредственно в функцию, которая ожидает в качестве входных данных неподписанный символ? - PullRequest
0 голосов
/ 24 ноября 2011

все! У меня есть вектор вектор, заполненный без знака. Моя функция, которая была импортирована из сторонней библиотеки, ожидает беззнаковый указатель на символ как один из своих входных параметров. Могу ли я передать адрес первого элемента моего вектора вектора непосредственно в следующей форме?

std::vector<std::vector<unsigned char> > v2D;

// Some population code snippet goes here
.....

MyFuct(&v2D[0][0], .......); 

Я знаю, что спецификация STL может гарантировать, что векторы будут хранить свои элементы непрерывно. Как насчет вектора вектора? Должен ли я преобразовать вектор vector в один вектор или массив unsigned char, а затем перейти к MyFuct? Спасибо!

Ответы [ 2 ]

3 голосов
/ 24 ноября 2011

Да, вы должны преобразовать их в один вектор, поскольку первый вектор не обязательно должен быть непрерывным со вторым вектором.

0 голосов
/ 24 ноября 2011

Да, вы можете, но вы хотите использовать & v2D [0], если он объявлен как std::vector < unsigned char > v2D

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...