C++ STL 中的 match_results cbegin() 和 cend()


在本文中,我们将讨论 C++ STL 中 match_results::cbegin() 和 match_results::cend() 函数的工作原理、语法和示例。

什么是 C++ STL 中的 match_results?

std::match_results 是一个专门的类似容器的类,用于保存匹配到的字符序列的集合。在这个容器类中,正则表达式匹配操作会找到目标序列的匹配项。

什么是 match_results::cbegin()?

match_results::cbegin() 函数是 C++ STL 中的一个内置函数,它在 <regex> 头文件中定义。此函数返回一个常量迭代器,该迭代器指向 match_results 容器中的第一个元素。常量迭代器不能用于修改容器,常量迭代器仅用于遍历容器。

语法

smatch_name.cbegin();

参数

此函数不接受任何参数。

返回值

此函数返回一个常量迭代器,该迭代器指向 match_results 容器的第一个元素。

示例

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

示例

实时演示

#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;
}

输出

如果我们运行以上代码,它将生成以下输出:

Match Found
Tutorials
Tuto
rials

什么是 match_results::cend()?

match_results::cend() 函数是 C++ STL 中的一个内置函数,它在 <regex> 头文件中定义。此函数返回一个常量迭代器,该迭代器指向 match_results 容器中最后一个元素的下一个元素。此函数的工作方式与 match_results::end() 相同。

语法

smatch_name.begin();

参数

此函数不接受任何参数。

返回值

此函数返回一个常量迭代器,该迭代器指向 match_results 容器的最后一个元素之后的位置。

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()

示例

实时演示

#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;
}

输出

如果我们运行以上代码,它将生成以下输出:

Match Found
Tutorials
Tuto
rials

更新于: 2020年3月23日

62 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告