Если у меня есть необработанный указатель типа C, можно ли создать std::vector
того же типа, который владеет данными указателя без каких-либо копий данных (только перемещение)? Меня мотивирует вопрос о существовании функции-члена data()
для std::vector
, что означает, что элементы вектора находятся где-то в памяти последовательно.Возможно ли, что указатель попадает под вектор без каких-либо копий данных?
Редактировать: Я должен добавить, что надежда у меня была также усилена существованием таких функций, как std::make_shared
.
Да, но бойтесь, что вектор будет изменен и будет аннулирован ваш указатель. Если вектор никогда не изменяет размер, и вы можете это гарантировать, вы в безопасности. – user4581301
Вы выделяете буфер? Тогда вы можете позволить этому вектору сделать это. В противном случае я не знаю, как это может быть достигнуто. – 5gon12eder
@ user4581301 вы можете передать право собственности на уже существующий массив на вектор? это новости для меня – vu1p3n0x