std::match_results::max_size() trả về số lượng match tối đa mà đối tượng match_results có thể chứa – giới hạn lý thuyết do allocator và kích thước con trỏ.
Đặc điểm
- Trả về
size_type(thườngsize_t). - Không tham số, không ném exception.
- Giá trị rất lớn (thường ~2⁶³-1 trên 64-bit) – hiếm khi đạt giới hạn này.
- Khác với
size()– số match thực tế từ lần regex_search gần nhất.
Ví dụ
#include <iostream>
#include <regex>
using namespace std;
int main() {
match_results<string::const_iterator> mr; // hoặc smatch (alias cho string)
cout << "max_size: " << mr.max_size() << endl;
string s = "abc123def456";
regex re(R"(\d+)");
regex_search(s, mr, re);
cout << "Actual matches (size): " << mr.size() << endl; // 2
for (auto& m : mr) cout << m.str() << ' '; // 123 456
return 0;
}
Kết quả mẫu
max_size: 768614336404564650 Actual matches (size): 2 123 456
Lưu ý
match_resultsthường dùng qua alias:cmatch(const char*),smatch(string),wcmatch,wsmatch.- Được fill bởi
regex_match,regex_search,regex_iterator. max_size()chủ yếu dùng cho kiểm tra giới hạn lý thuyết, ít dùng trong code thực tế.