0

autoキーワードが機能しないのはなぜですか...????

s.push_back(11);
s.push_back(22);
s.push_back(33);
s.push_back(55);

for (auto it = s.begin(); it != s.end(); it++){
    cout << (*it) << endl;
}
4

3 に答える 3

3

それはうまくいくはずです。これには C++11 のサポートが必要です。GCC では、バージョン 4.4 以降が必要であり、必ずstd=c++0xフラグを使用してください (またはstd=c++11最新バージョンの場合)。

于 2012-10-16T19:06:59.420 に答える
1

C++11 標準で正式に導入された auto キーワードをコンパイラがサポートしているかどうかを確認してください。

于 2012-10-16T19:07:25.677 に答える
1

-std=c++11これをコンパイルするには、Visual Studio 2010 (またはそれ以降) または GCC フラグが必要です。VC++11 または GCC 4.6 以降では、これを for-range ループに書き直すこともできます。

for(auto& it : s) {
    std::cout << it << '\n';
}
于 2012-10-16T19:08:23.173 に答える