Computer >> Máy Tính >  >> Lập trình >> C ++

match_results cbegin () thêm cend () trong C ++ STL

Trong bài viết này, chúng ta sẽ thảo luận về cách làm việc, cú pháp và ví dụ của các hàm match_results ::cbegin () và match_results ::cend () trong C ++ STL.

match_results trong C ++ STL là gì?

std ::match_results là một lớp giống như vùng chứa chuyên biệt được sử dụng để lưu trữ tập hợp các chuỗi ký tự được so khớp. Trong lớp vùng chứa này, thao tác so khớp regex tìm các kết quả phù hợp của chuỗi đích.

match_results ::cbegin () là gì?

Hàm match_results ::cbegin () là một hàm có sẵn trong C ++ STL, được định nghĩa trong tệp tiêu đề . Hàm này trả về trình lặp hằng đang trỏ đến phần tử đầu tiên trong vùng chứa match_results. Không thể sử dụng trình lặp liên tục để thực hiện các sửa đổi trong vùng chứa, trình lặp không đổi được sử dụng để chỉ lặp lại qua vùng chứa.

Cú pháp

smatch_name.cbegin();

Tham số

Hàm này không chấp nhận tham số.

Giá trị trả về

Hàm này trả về trình lặp hằng số đang trỏ đến phần tử đầu tiên của vùng chứa match_results.

Ví dụ

Input: std::string str("TutorialsPoint");
   std::smatch Mat;
   std::regex re("(Tutorials)(.*)");
   std::regex_match ( str, Mat, re );
   Mat.cbegin();
Output: T
cbegin()

Ví dụ

#include <iostream>
#include <string>
#include <regex>
int main () {
   std::string str("Tutorials");
   std::smatch Mat;
   std::regex re("(Tuto)(.*)");
   std::regex_match ( str, Mat, re );
   std::cout<<"Match Found: " << std::endl;
   for (std::smatch::iterator i = Mat.cbegin(); i!= Mat.cend(); ++i) {
      std::cout << *i << std::endl;
   }
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

Match Found
Tutorials
Tuto
rials

match_results ::cend () là gì?

Hàm match_results ::cend () là một hàm có sẵn trong C ++ STL, được định nghĩa trong tệp tiêu đề . Hàm này trả về một trình lặp không đổi trỏ tới phần tử bên cạnh phần tử cuối cùng của vùng chứa match_results. Hàm này hoạt động giống như match_results ::end ().

Cú pháp

smatch_name.begin();

Tham số

Hàm này không chấp nhận tham số.

Giá trị trả về

Hàm này trả về một trình lặp không đổi trỏ đến phần tử cuối cùng của vùng chứa match_results trong quá khứ.

Input: std::string str("TutorialsPoint");
   std::smatch Mat;
   std::regex re("(Tutorials)(.*)");
   std::regex_match ( str, Mat, re );
   Mat.cend();
Output: m //random value which is past to last.
cend()

Ví dụ

#include <iostream>
#include <string>
#include <regex>
int main () {
   std::string str("Tutorials");
   std::smatch Mat;
   std::regex re("(Tuto)(.*)");
   std::regex_match ( str, Mat, re );
   std::cout<<"Match Found: " << std::endl;
   for (std::smatch::iterator i = Mat.cbegin(); i!= Mat.cend(); ++i) {
      std::cout << *i << std::endl;
   }
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

Match Found
Tutorials
Tuto
rials