string::npos是做什麽用的,在c++primer中用它的时候好像和上下文都无关啊,突然就出现一个npos,事先也没有关于他的声明,比如:
string name( "Annaqijiashe ");
int pos=name.find( "Anna ");
if(pos==string::npos) <-------这里的string::npos和上下文有什麽关系啊?!在这里是什麽意思?!
cout < < "Anna not found!\n ";
else cout < < "Anna found at pos: " < <pos < <endl;
npos是一个常数,用来表示不存在的位置,类型一般是std::container_type::size_type
许多容器都提供这个东西。取值由实现决定,一般是-1,这样做,就不会存在移植的问题了。
npos表示string的结束位子,是string::type_size 类型的,也就是find()返回的类型。继续看书,在容器那一章有详细说明
这个npos就是char*的结尾的那个 '\0 '
这么用怎么就不会错了
string name( "Annaqijiashe ");
int pos=name.find( "Anna ");
if(pos==string::npos) <-------这里的string::npos和上下文有什麽关系啊?!在这里是什麽意思?!
cout < < "Anna not found!\n ";
else cout < < "Anna found at pos: " < <pos < <endl;
npos是一个常数,用来表示不存在的位置,类型一般是std::container_type::size_type
许多容器都提供这个东西。取值由实现决定,一般是-1,这样做,就不会存在移植的问题了。
npos表示string的结束位子,是string::type_size 类型的,也就是find()返回的类型。继续看书,在容器那一章有详细说明
这个npos就是char*的结尾的那个 '\0 '
这么用怎么就不会错了