Namespaces
Variants

std::basic_string<CharT,Traits,Allocator>:: npos

From cppreference.net
std::basic_string
static const size_type npos = - 1 ;

Il s'agit d'une valeur spéciale égale à la valeur maximale représentable par le type size_type . Sa signification exacte dépend du contexte, mais elle est généralement utilisée soit comme indicateur de fin de chaîne par les fonctions qui attendent un index de chaîne, soit comme indicateur d'erreur par les fonctions qui retournent un index de chaîne.

Note

Bien que la définition utilise - 1 , size_type est un type entier non signé, et la valeur de npos est la plus grande valeur positive qu'il peut contenir, en raison de la conversion implicite signé-vers-non-signé . C'est une méthode portable pour spécifier la plus grande valeur de tout type non signé.

Exemple

#include <bitset>
#include <iostream>
#include <string>
int main()
{
    // les fonctions de recherche de chaîne retournent npos si rien n'est trouvé
    std::string s = "test";
    if (s.find('a') == s.npos)
        std::cout << "no 'a' in 'test'\n";
    // les fonctions qui prennent des sous-ensembles de chaîne comme arguments
    // utilisent npos comme indicateur "jusqu'à la fin"
    std::string s2(s, 2, std::string::npos);
    std::cout << s2 << '\n';
    std::bitset<5> b("aaabb", std::string::npos, 'a', 'b');
    std::cout << b << '\n';
}

Sortie :

no 'a' in 'test'
st
00011

Voir aussi

[static]
valeur spéciale. La signification exacte dépend du contexte
(constante de membre public statique de std::basic_string_view<CharT,Traits> )