La vérification de chaîne vide en C++ alternatives
Il y a (au moins 🙂 deux façons de vérifier si une chaîne est vide en C++, en particulier:
if (s.length() == 0) {
//string is empty
}
et
if (s == "") {
//string is empty
}
Qui est le meilleur du point de vue des performances? Peut-être que la mise en œuvre de bibliothèque est assez intelligent donc il n'y a pas différents entre eux (dans ce cas, d'autres critères doivent décider, c'est à dire lisibilité), mais j'ai tendance à penser que la première alternative (à l'aide de length()
), c'est mieux.
Tout commentaire, s'il vous plaît? (Ou même une 3ème méthode meilleure que celles que j'ai proposé).
Que diriez -
Qu'en est S == null?
Il n'y a pas
Même dans les langues où ce serait valide, tels que Java, "pas de chaîne à tous" n'est pas la même que la chaîne vide.
std::string::empty
?Qu'en est S == null?
Il n'y a pas
null
en C++ (il est appelé nullptr
), et aussi un std::string
variable ne peut pas être null. Seuls les pointeurs peuvent être null.Même dans les langues où ce serait valide, tels que Java, "pas de chaîne à tous" n'est pas la même que la chaîne vide.
OriginalL'auteur fgalan | 2017-01-02
Vous devez vous connecter pour publier un commentaire.
Vous pouvez également utiliser
empty
Bibliothèque des réalisateurs sont également libres de faire le chèque comme un simple
internal_buff == nullptr || *internal_buff == NUL_CHAR
. La bibliothèque concepteurs ne nécessitentsize == 0
de tenir aussi bien 🙂Nous avons présenté ce gâchis, il y a quelques semaines, basée sur exactement le même débat et trouvé .size() == 0 pour être le plus rapide, mais personne ne l'a proposé.s.empty() à même de vérifier, et le inlineable existantes à la fonction de la bibliothèque a eu pour être le moyen le plus rapide.
OriginalL'auteur artm
Vous pouvez utiliser les éléments suivants:
OriginalL'auteur
Je voudrais utiliser
empty
de chaîne bibliothèqueOriginalL'auteur Jackyto