информация о типе данных через сокет;динамическая инициализация? - PullRequest
1 голос
/ 03 сентября 2010

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

(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 вектор. Я не знаю, как инициализировать в таком случае. Кто-нибудь может мне помочь?

Ответы [ 2 ]

1 голос
/ 03 сентября 2010

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

0 голосов
/ 03 сентября 2010

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

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