Capisco che l'utilizzo di vector è un buon modo per memorizzare dati binari quando si utilizza C++ e STL. Tuttavia, per i miei test unitari, vorrei inizializzare il vettore usando una variabile stringa const char * C.const char * per vettore <unsigned char> Initalisation
Sto tentando di utilizzare una variante del codice trovato qui - Converting (void*) to std::vector<unsigned char> - per fare questo:
const char* testdata = "the quick brown fox jumps over the lazy dog.";
unsigned char* buffer = (unsigned char*)testdata;
typedef vector<unsigned char> bufferType;
bufferType::size_type size = strlen((const char*)buffer);
bufferType vec(buffer, size);
Tuttavia il VC++ compilatore non è felice con la linea di inizializzazione del vettore, affermando:
error C2664: 'std::vector<_Ty>::vector(unsigned int,const _Ty &)' : cannot convert parameter 1 from 'char *' to 'unsigned int'
apprezzo l'estrema n00bity di questa domanda e sono pienamente preparati per molte critiche sul codice di cui sopra :)
Grazie in anticipo, Chris
Tu sei molto meglio usare: 'std :: vector vec;' ' vec.push_back (" la volpe marrone rapido si sposta oltre i pigri dog. ");' –
Il codice in prova verrà infine utilizzato per gestire i dati binari, quindi la preferenza per il vettore. Per i test, vorrei inizializzarlo usando i dati const char *. –
È possibile ottenere i dati di carattere sottostanti semplicemente usando 'std :: string :: c_str()', e si risparmiano molti potenziali problemi nell'utilizzo di puntatori non elaborati. –