gpt4 book ai didi

c++ - 为什么在使用带有正则表达式变量模式和构造模式的 sregex_iterator 时会得到两个不同的结果

转载 作者:行者123 更新时间:2023-11-30 02:29:53 25 4
gpt4 key购买 nike

如果我在应用程序中输入“110110”,第一个 block 打印出“1”,而第二个 block 打印出“2”。

为什么结果不同?

如何在函数调用中构造正则表达式模式?

#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
cin >> s;

auto begin = sregex_iterator(s.begin(),s.end(),regex{R"(110)"});
auto end = sregex_iterator();
cout << distance(begin,end) << endl;

const regex r(R"(110)");
begin = sregex_iterator(s.begin(),s.end(),r);
end = sregex_iterator();
cout << distance(begin,end) << endl;
}

最佳答案

C++14 通过删除构造函数修复了接口(interface):

regex_iterator(BidirIt, BidirIt,
const regex_type&&,
std::regex_constants::match_flag_type) = delete;

关于c++ - 为什么在使用带有正则表达式变量模式和构造模式的 sregex_iterator 时会得到两个不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39234392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com