Initialiser le vecteur vide dans la structure - c++
J'ai un struct
:
typedef struct user {
string username;
vector<unsigned char> userpassword;
} user_t;
J'ai besoin d'initialiser userpassword
avec un vide vector
:
struct user r={"",?};
Que dois-je mettre à la place de ?
?
Juste dire
de cette façon, l'utilisateur ne contiennent pas valide nul C de la chaîne.
Le Code est là que pour l'exemple ... il y aura plus de valeurs, de qui j'ai besoin de l'initialiser avec des valeurs appropriées
ni si vous initialisez avec un vecteur vide. De la sorte?
Ensuite, faire un constructeur.
user r;
. Et le typedef
est inutile.de cette façon, l'utilisateur ne contiennent pas valide nul C de la chaîne.
Le Code est là que pour l'exemple ... il y aura plus de valeurs, de qui j'ai besoin de l'initialiser avec des valeurs appropriées
ni si vous initialisez avec un vecteur vide. De la sorte?
Ensuite, faire un constructeur.
OriginalL'auteur Tomasz | 2012-11-17
Vous devez vous connecter pour publier un commentaire.
Les deux
std::string
etstd::vector<T>
ont les constructeurs de l'initialisation de l'objet à vide. Vous pouvez utiliserstd::vector<unsigned char>()
mais je préfère retirer l'initialiseur.OriginalL'auteur Dietmar Kühl
Comme ceci:
OriginalL'auteur Kerrek SB
Comment sur
ou
ou
ou
La première et la deuxième le C++11. La dernière est identique à la troisième, mais beaucoup plus court et plus lisible.
OriginalL'auteur Luchian Grigore
La valeur par défaut vecteur constructeur de créer un vecteur vide. En tant que tel, vous devriez être en mesure d'écrire:
Remarque, j'ai aussi utilisé la chaîne par défaut constructeur au lieu de "".
Vous pourriez envisager de faire de l'utilisateur d'une classe et l'ajout d'un constructeur par défaut qui fait cela pour vous:
Puis juste écrit:
Le résultat sera une bonne initialisation de l'utilisateur.
OriginalL'auteur dma