2010-09-03 2 views
1

У меня есть данные, поступающие через сокет, который выглядит следующим образом:информация о типе данных через сокет; динамическая инициализация?

(h)(int,char,float,int,char)(/h)(d)(2,a,1.32,45,d)(3,d,3.45,32,a)(/d) 

Тип данных прибывающий данных является динамическим и, как известно, только когда заголовок будет получен. Затем я должен создать соответствующие std::vector s для хранения данных. В этом случае два int, два char и один вектор float. Я не знаю, как инициализировать в таком случае. Кто-нибудь может мне помочь?

+0

Есть ли конечный набор типов? –

+0

есть. close to 10 – Rajesh

ответ

1

std::vector не может это сделать сам по себе. Похоже, вам нужно что-то похожее на Boost.Any или Boost.Variant, вам нужно решить, какой из них. Если у вас небольшое количество типов, может работать и простой union.

+0

Число типов данных около 10. Как профсоюз может помочь? – Rajesh

0

Я думаю, что понял. Если объединение содержало все типы данных, я мог бы использовать один из них в любой момент времени и его можно инициализировать с именем объединения. Brilliant. Благодаря!

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