44 votes

Obtention d’un tableau à partir de std:vector

Quel est le moyen le plus simple d’obtenir un tableau de caractères à partir d’un vecteur ?

La façon dont je fais est d’obtenir une chaîne initialisée à l’aide d’itérateurs vectoriels de début et de fin, puis d’obtenir .c_str() à partir de cette chaîne. Existe-t-il d’autres méthodes efficaces?

76voto

econoclast Points 776

Cela a été discuté dans Effective STLde Scott Meyers , que vous pouvez faire pour obtenir l’adresse du premier élément d’un , et puisque la norme contraint les vecteurs à avoir une mémoire contiguë, vous pouvez faire des choses comme ça.

edit: D’après les commentaires (merci casablanca)

  • méfiez-vous de conserver des pointeurs vers ces données, car le pointeur peut être invalidé si le vecteur est modifié.

50voto

ronag Points 13051
std::vector<char> chars;
char* char_arr = chars.data(); // &chars[0]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X