Thắc mắc về string::npos


Mọi người cho mình hỏi string::npos có nghĩa là gì vậy. Mình đã xem qua trên cplusplus nhưng chưa hiểu. Rất mong mọi người giải đáp

C++ Code:
  1. // string::find
  2. #include <iostream>
  3. #include <string>
  4. using namespace std;
  5. int main ()
  6. {
  7.     string str ("There are two needles in this haystack with needles.");
  8.     string str2 ("needle");
  9.     size_t found;
  10.   // different member versions of find in the same order as above:
  11.     found=str.find(str2);
  12.     if (found!=string::npos)
  13.         cout << "first 'needle' found at: " << int(found) << endl;
  14.     system("pause");
  15.     return 0;
  16. }

Chào bạn, cảm ơn bạn đã gửi câu hỏi về diễn đàn.

String::npos là một giá trị đặc biệt trong cài đặt trong string. Thực ra nó là số tương ứng với -1. Giúp phân biệt giá trị trả về của các hàm tìm kiếm trong xâu.

Bạn nhớ là xâu cài đặt bằng string là có độ dài không giới hạn,các phần tử của nó đánh chỉ số từ 0 đến n. Cho nên dùng -1 để trả về giá trị khi mà không tìm thấy vị trí xuất hiện của các xâu con, hay ký tự cần tìm trong hàm find của lớp string
Nhớ chia sẻ bài viết cho mọi người cùng xem nhé