Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

vector

10 réponses
Avatar
JBB
y a t'il deja une classe dans la STL pour vector<char> ?
genre std::buffer ou std::memory
Merci.

10 réponses

Avatar
Falk Tannhäuser
JBB wrote:
y a t'il deja une classe dans la STL pour vector<char> ?
genre std::buffer ou std::memory


std::vector<char> ne convient-il pas ?

Falk

Avatar
Marc G
std::string, ça convient pas ?
ça dépend ce que tu veux faire avec
Avatar
JBB
std::string, ça convient pas ?
ça dépend ce que tu veux faire avec




C'est pour stocker des buffers en binaire (pour lire dsn des sockets,
écrire dans des fichiers). Je peux donc avoir des 0 en plein milieu.
Et de la même manière que string est un spécialisation de basic_string
je me suis dit qu'il existait peut quelque chose pour vector<char>.

Avatar
Jean-Marc Bourguet
JBB writes:

std::string, ça convient pas ?
ça dépend ce que tu veux faire avec


C'est pour stocker des buffers en binaire (pour lire dsn des sockets,
écrire dans des fichiers). Je peux donc avoir des 0 en plein milieu.
Et de la même manière que string est un spécialisation de basic_string
je me suis dit qu'il existait peut quelque chose pour vector<char>.


pour du binaire sans interpretation comme caracteres, unsigned char est
nettement meilleur que char.

A+

--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org


Avatar
Marc G
"JBB" a écrit dans le message de news:
etdnv6$jmv$
std::string, ça convient pas ?
ça dépend ce que tu veux faire avec


C'est pour stocker des buffers en binaire (pour lire dsn des sockets,
écrire dans des fichiers). Je peux donc avoir des 0 en plein milieu.
Et de la même manière que string est un spécialisation de basic_string
je me suis dit qu'il existait peut quelque chose pour vector<char>.


je comprends pas bien, tes char pour toi, c'est seulement '0' ou '1' ?


Avatar
Fabien LE LEZ
On Fri, 16 Mar 2007 10:28:06 +0100, JBB :

C'est pour stocker des buffers en binaire (pour lire dsn des sockets,
écrire dans des fichiers). Je peux donc avoir des 0 en plein milieu.


Ni std::string, ni std::vector<char>, ne sont gênés par des ''.

Avatar
Fabien LE LEZ
On Fri, 16 Mar 2007 16:16:48 +0100, "Marc G" :

je comprends pas bien, tes char pour toi, c'est seulement '0' ou '1' ?


Je crois plutôt qu'il voulait parler de '', qui pose effectivement
problème dans les chaînes "à la C".

Avatar
JBB
On Fri, 16 Mar 2007 10:28:06 +0100, JBB :

C'est pour stocker des buffers en binaire (pour lire dsn des sockets,
écrire dans des fichiers). Je peux donc avoir des 0 en plein milieu.


Ni std::string, ni std::vector<char>, ne sont gênés par des ''.

En fait je croyais qu'en faisant un size() sur un std::string

fontcionnait comme strlen() et que du coup avec un '' au milieu
(d'ailleurs pour moi '' == 0 ) ça ne m'aurais pas donné la taille que
j'attendais.
Après tests il s'avère effectivement que string n'a que faire des '' (
si ce n'est qu'il en rajoute un à la fin pour que c_str() fonctionne.?)


Avatar
Fabien LE LEZ
On Mon, 19 Mar 2007 10:06:10 +0100, JBB :

En fait je croyais qu'en faisant un size() sur un std::string
fontcionnait comme strlen()


J'ai cru ça aussi, au tout début. Vieux relents de C :-(

[...] il s'avère effectivement que string n'a que faire des '' (
si ce n'est qu'il en rajoute un à la fin pour que c_str() fonctionne.?)


Disons qu'il en rajoute un à la fin quand on appelle c_str(), pour que
les fonctions C (strlen et compagnie) fonctionnent.

Avatar
Stan
"JBB" a écrit dans le message de
news:etdnv6$jmv$
std::string, ça convient pas ?
ça dépend ce que tu veux faire avec




C'est pour stocker des buffers en binaire (pour lire dsn des sockets,
écrire dans des fichiers). Je peux donc avoir des 0 en plein milieu.


Je les utilise couramment pour lire/écrire dans des flux
TCP ou sur des port RS232 sans aucun problème.

--
-Stan