auto
特にforループでキーワードを使用することの長所と短所は何ですか?
for(std::vector<T>::iterator it = x.begin(); it != x.end(); it++ )
{
it->something();
}
for(std::map<T>::iterator it = x.begin(); it != x.end(); it++ )
{
it->second->something();
}
for(auto it = x.begin(); it != x.end(); it++ )
{
it->??
}
マップのイテレータがあるのか、オブジェクトのプロパティを使用するのfirst
か、second
または単にプロパティに直接アクセスするのかがわからない場合に、イテレータがあるかどうかがわからないようです。
これは、キーワードを使用するかどうかに関するC#の議論を思い出させますvar
。私がこれまでに得ている印象は、C ++の世界auto
でvar
は、C#の世界よりも少ない戦いで人々がキーワードを採用する準備ができているということです。私にとって最初の本能は、変数の型を知りたいので、その変数に対して実行できる操作を知ることができるということです。
for (auto& it : x)
(あなたがコピーしたい場合や、参照なし)
x
わからない場合x
は、そもそもループを作成しないでください
var
かどうかについての戦いがあった?私は逃しました。