私のプログラムでは、順序付けられていないキーが必要です。完了した仕事をするために、私は std::unordered_map コンテナを使用します。テストコードは次のとおりです。
#include <iostream>
#include <unordered_map>
#include <string>
int main()
{
std::unordered_map<std::string, int> toto;
toto["Outlook"] = 454;
toto["Temperature"] = 4;
toto["Humidity"] = 554;
toto["Wind"] = 545454;
std::unordered_map<std::string, int>::iterator It = toto.begin();
std::cout << toto.size() << std::endl;
for (; It != toto.end(); ++It)
std::cout << (*It).first << std::endl;
getchar();
return (0);
}
Windows (Visual Studio 2012) では、出力は次のとおりです。
Outlook
Temperature
Humidity
Wind
それは正しいです。ソートは適用されていません。
ただし、Linux では、出力は次のようになります。
Humidity
Outlook
Wind
Temperature
PS : Linux では、プログラムを -std::c++0x および -std=gnu++0x でコンパイルしましたが、コンパイル エラーは発生しません。
では、同じプログラムで異なる動作を行うにはどうすればよいでしょうか? よろしくお願いいたします。