Как получить адрес запуска буфера std :: vector наиболее элегантно? - PullRequest
12 голосов
/ 27 августа 2009

Я хочу использовать std :: vector для динамического выделения памяти. Сценарий:

int neededLength = computeLength(); // some logic here

// this will allocate the buffer     
std::vector<TCHAR> buffer( neededLength );

// call a function that accepts TCHAR* and the number of elements
callFunction( &(buffer[0]), buffer.size() );

Код выше работает, но этот &(buffer[0]) выглядит безобразно. Есть ли более элегантный способ добиться того же?

Ответы [ 11 ]

1 голос
/ 27 августа 2009

Как уже говорилось, нет.

Причина в том, что & buffer [0] является единственным способом, гарантированным стандартом, для получения адреса векторного буфера.

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