remplissage d'un tableau en c++
Je suis novice en c++ . J'ai essayé d'écrire de code suivant pour remplir chaque octet du tableau avec de nouvelles valeurs sans écraser les autres. Chaque octet (r) ci-dessous doit être ajoutée à la nouvelle adresse de la matrice.
int _tmain(int argc, _TCHAR* argv[])
{
char y[80] ;
for(int b=0 ; b<10;++b)
{
strcpy_s(y"r");
}
}
S'il vous plaît laissez-moi savoir si il existe une fonction en c++ qui peut le faire. Dans le cas ci-dessus, j'ai de la valeur " r " de l'arbitraire et cela peut avoir une toute nouvelle valeur.
Donc la résultante du tableau des caractères doivent contenir la valeur rrrrr...10 fois.
Merci beaucoup à l'avance pour cela.
std::fill
existe.fait que le code de la construction?
Si vous allez utiliser C++, essayez d'éviter standard de fonctions C quand il y a un C++ alternative.
strcpy
est une fonction C, et strcpy_s
est une extension propriétaire et non portable.OriginalL'auteur junni lomo | 2013-01-21
Vous devez vous connecter pour publier un commentaire.
À L'Aide De C++11
Ou, comme mentionné dans les commentaires vous pouvez utiliser
std::fill(array,array+10,'r')
.std::begin
? Vous pouvez simplement utiliserarray
.Hors de l'habitude maintenant 🙁
De ralenti intérêt, comment fonctionne la performance de
std::fill
comparer à memset?compilation avec -O2 et l'ASM de sortie est près identique
Le désaccord est bien votre droit, même si vous vous trompez. 🙂
OriginalL'auteur Rapptz
Vous pouvez utiliser le
[]
de l'opérateur et de lui affecter unchar
valeur.Et oui,
std::fill
est plus idiomatique et C++ moderne façon de le faire, mais vous devez savoir à propos de la[]
opérateur de trop!OriginalL'auteur David Heffernan
Option 1:
Initialiser le tableau lors de la définition de. Pratique pour l'initialisation de seulement un petit nombre de valeurs. L'avantage est que le tableau peut être déclaré
const
(non montré ici).Option 2:
Classique C
Option 3:
Classique (pré-C++11) C++
char y[80] = "rrrrrrrrrr";
OriginalL'auteur Arun
OriginalL'auteur junni lomo