|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Sagiri 于 2022-12-6 19:22 编辑
学校布置了一道关于实数的表达式计算,意外的发现了这么一段提取小数的代码,感觉写的很好,但是看不明白,查相关教程文章也只是官方api的翻译,晦涩难懂
- string expression = "4.12*3.14";
- regex pattern("([\\d.]+)|([+\\-*/()])");
- vector<string> words;
- // 看不懂 copy 函数
- copy(
- sregex_token_iterator(expression.begin(), expression.end(), pattern),
- sregex_token_iterator(),
- back_inserter(words));
- for(int i = 0; i < words.size(); i++){
- cout << words[i] << endl;
- }
复制代码
sregex_token_iterator(expression.begin(), expression.end(), pattern) 是在正则表达式匹配返回迭代器吗?
那为什么第二个参数 sregex_token_iterator() 还能无参调用?那这又返回了个啥?查看重载好像也没找到这个?
我看不懂,但我大受震撼
反正换我写也就只能 for 去提取小数(
|
|