ในบทความนี้ เราจะพูดถึงการทำงาน ไวยากรณ์ และตัวอย่างของฟังก์ชัน match_results::empty() ใน C++ STL
match_results ใน C++ STL คืออะไร
std::match_results เป็นคลาสที่มีลักษณะเหมือนคอนเทนเนอร์พิเศษ ซึ่งใช้เพื่อเก็บคอลเลกชันของลำดับอักขระที่ตรงกัน ในคลาสคอนเทนเนอร์นี้ การดำเนินการจับคู่ regex จะค้นหารายการที่ตรงกันของลำดับเป้าหมาย
match_results::empty() คืออะไร
ฟังก์ชัน match_results::empty() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว
ไวยากรณ์
smatch_name.empty();
พารามิเตอร์
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
คืนค่า
ฟังก์ชันนี้จะคืนค่าบูลีนเป็น "จริง" หากวัตถุที่ตรงกันว่างเปล่า หรือไม่มีรายการที่ตรงกันในคอนเทนเนอร์ มิฉะนั้นจะคืนค่า "เท็จ" หากวัตถุที่ตรงกันมีค่าบางค่าหรือมีรายการที่ตรงกันบางส่วน
ตัวอย่าง
Input: std::smatch; smatch.empty(); Output: true
ตัวอย่าง
#include<bits/stdc++.h>
using namespace std;
int main() {
string str("Tutorials");
regex R_1("Points.*");
regex R_2("Tutorials.*");
smatch Mat_1, Mat_2;
regex_match(str, Mat_1, R_1);
regex_match(str, Mat_2, R_2);
if (Mat_1.empty()) {
cout<<"String doesn't matches with Regex-1" << endl;
} else {
cout << "String matches with Regex-1" << endl;
}
if (Mat_2.empty()) {
cout << "String doesn't matches with Regex-2" << endl;
} else {
cout << "String matches with Regex-1" << endl;
}
return 0;
} ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
String doesn't matches with Regex-1 String matches with Regex-1