2014-11-28 3 views
-4

Как преобразовать RepeatedField<google::protobuf::uint32> в const std::vector<double>?Преобразование типа в вектор в C++

+0

Удаление каждого элемента из RepeatedField и положить его в вектор должен работать. – Galik

+0

@BenjaminBannier: Все значения (u) int32 могут храниться точно в двойном размере. http://stackoverflow.com/a/1848762/25488 – RobH

ответ

5

Это должно быть легким, так как повторяющиеся поля действуют как контейнеры:

void foo(RepeatedField<google::protobuf::uint32> const & f) 
{ 
    std::vector<double> v(f.begin(), f.end()); 

    // use v 
} 
+1

@KarolyHorvath Решение WLOG. – Columbo

+0

Я получаю эту ошибку «Итератор вектор выражения + смещение вне диапазона» – Dosti

+0

@Dosti: Вы уверены? Обычно это работает для меня. –

Смежные вопросы