我立即为我可怕的英语道歉:D
对于我的项目,我需要分析obj文件。我逐行读取文件并使用正则表达式从特定字符串中选择数据。
regex regCoord("-?\\d+\.?\\d*");
sregex_iterator a(line.begin(), line.end(), regCoord);
我确定已找到3场比赛,我想马上使用它们。例如,输出到控制台或保存到结构
cout << line << endl;
cout << a++->str() << " " << a++->str() << " " << a->str() << endl;
但在这种情况下,递增以相反的顺序从左到右发生!并且在输出中我得不到(第1个元素,第2个元素,第3个元素),但是(第2个元素,第1个元素,第1个元素)。如果我将所有三个元素都传递给结构构造函数,就会出现类似的问题。
Output:
v 0.151164 0.014830 -0.051720
0.014830 0.151164 0.151164
但如果我循环遍历元素或以三行写输出,结果将看起来正常。同样,如果我在不使用构造函数的情况下填充结构,并分别写入每个字段。
cout << a++->str() << " ";
cout << a++->str() << " ";
cout << a->str() << endl;
Output:
v 0.151164 0.014830 -0.051720
0.151164 0.014830 -0.051720
为什么会有这么奇怪的倒置参数处理?我使用的是Visual Studio 2017