C++代码在VSCode中使用Run Code运行的计算结果与DEBUG调试和在Visual Studio中的运行计算结果不一致?

C++代码在VSCode中使用Run Code运行的计算结果与DEBUG调试和在Visual Studio中的运行计算结果不一致?
代码如下:
#include <iostream>
#include <string>
#include <algorithm>
#include <math.h>
using namespace std;

int main()
{
    string str = "AB";
    reverse(str.begin(), str.end());
    int num = 0;
    for(int i=0; i<str.length(); i++)
    {
        cout<<"i="<<i<<", num="<<num<<", "<<(str[i] - 'A' + 1)<<", "<<pow(26, i)<<endl;
        // int s = str[i] - 'A' + 1;
        // int r = pow(26, i);
        // num = num + s * r;
        num = num + (str[i] - 'A' + 1) * pow(26, i);
        cout<<num<<endl;
    }
    return 0;
}

运行结果及报错内容

VSCode中的结果输出为 num=27,是错误结果,如下图:

img

Visual Studio中的结果 输出为 num=28, 是正确的, 如下图:

img

VSCode中 DEBUG下的结果 输出也为 num=28, 也是正确的,其中DEBUG使用的是MinGW中的gdb调试器, 如下图:

img

请问应该如何解决,是不是跟Run Code所默认使用的编译器或是C++ 标准有关?
谢谢

可能是因为 VSCode 在调用终端时的命令与其他的不一样,可以试试加一些参数
比如:
-std=c++11 等等

编译器版本问题,reverse应该是c++ 20标准才有的函数吧,不然的话不会这样,你可以试试print一下看看你两次不一样结果的时候reverse之后的str结果就知道了