雖然做一個小的學校的項目,我只注意到在 範圍std::uniform_int_distribution<int>
一個區別:的std :: uniform_int_distribution <int>範圍G ++和MSVC
當使用G ++範圍爲[A,B],然而,當使用MSVC(Visual Studio 2010中)的範圍是(A,b],所以下面程序的輸出:
#include <iostream>
#include <random>
using std::cout;
using std::cin;
int main()
{
std::mt19937 random;
std::uniform_int_distribution<int> intDist(-1, 1);
for(int i = 0; i < 100; i++)
{
cout << intDist(random) << "\n";
}
cin.get();
}
可否使用克++時在某一時刻顯示-1,但它絕不會顯示-1時使用msvc。
I知道編譯器之間存在這種差異是很常見的,但展位MSDN文檔和範圍應該是[a,b]的標準標記。
這種行爲的原因是什麼?