2009-12-15 15 views
0

Ainsi, il peut être des sons comme newbies question ... Et REALY proboly il est newbies :)booste tampon en char * (pas std :: string)

J'essaie de tourner infomation de boost :: asio :: streambuf que j'ai obtenu, en utilisant read_until dans char *. J'ai trouvé beaucoup d'exemples de la transformer en std :: string, mais je serais fou, si utiliser bufer -> std :: string ->c_str dans une application, a besoin d'un perfomanse élevé. (Mais en fait, je ne me contente pas vraiment de choses comme des conteurs et ainsi de suite.)

+0

Il y a deux choses ... Je suis un codeur jeune Russe realy, je puis faire quelques erreurs en anglais) ... Et si mon q. est deux simle, juste commnet comme "lire des manuels gars paresseux!", pour me le faire savoir, mon q. n'est pas étrange d'y répondre ... –

+0

Essayez d'utiliser une autre fonction boost :: asio read. Utilisez l'une des surcharges qui stocke les données directement dans un tableau char à la place du streambuf. – Dan

Répondre

1

Vous supposez que la conversion d'une chaîne std :: en chaîne C nuit aux performances.

Cela ne doit pas être supposé. std :: string est souvent implémenté comme un wrapper autour d'une chaîne C.

Si vous n'êtes pas satisfait des performances actuelles, commencez par utiliser un profileur d'exécution sur votre code.

+0

M ... Ok ... Merci ... Je n'avais vu que la lecture de flux, faite par streambuf façon de le faire (et c'était vraiment lent), maintenant j'ai trouvé de meilleures façons de le faire. (à travers les itérateurs) –