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 đề
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 đề
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