присвоение бинарного вектора C ++ - PullRequest
0 голосов
/ 17 марта 2011

Я пытаюсь преобразовать число в сеть и затем поместить результат в вектор в

std::vector<char> vctData;  
u_long lnum = 145;  
lnum = htonl(lnum);  
//This line should put lnum at the beginning of vector in the first 4 bytes  
vctData.insert(vctData.begin(), ???, ???); 

что делать ???

Ответы [ 2 ]

4 голосов
/ 17 марта 2011
std::vector<unsigned char> vctData;
u_long lnum = 145;
lnum = htonl(lnum);
vctData.insert(vctData.begin(), (unsigned char *) &lnum, (unsigned char *) (&lnum + 1));

Это берет отдельные байты lnum и помещает их один за другим в vctData.

1 голос
/ 17 марта 2011

РЕДАКТИРОВАТЬ: После того, как вы знаете, вам нужно добавить lnum к вектору char, а затем сделать это:

std::vector<char> vctData; //note: mention the type argument!
u_long lnum = 145;  
lnum = htonl(lnum);  

//inserts in the beginning!
vctData.insert(vctData.begin(),(char*)&lnum, (char*)&lum + sizeof(u_long)); 

Попробуй это. Дайте мне знать, если это работает для вас.

...