スポンサーリンク
C++のauto型とは、C++11で追加された型推論です。コンパイル時に型を推測し、適切な型として扱ってくれます。
読み方
auto型を使用するとコードが簡単に書けるようになります。イテレータのコードが非常に単純になります。さらに Range based forを利用することにより、さらにコードは簡素になります。
これは、イテレータの例です。ループを書くために、たくさん書かないといけません。
std::vector<int> v; for(std::vector<int>::iterator it = v.begin(); it != v.end(); ++it) { ; }
autoキーワードを使うこと、簡単に書けます。
std::vector<int> v; for(auto it = v.begin(); it != v.end(); ++it) { ; }
auto型の型推論は、以下のように扱われます。
int a = 123; auto* p = &a; // int* p = &a; auto& r = a; // int& r = a; const auto& c = a; // const int& c = a;
auto は、C++11 で追加されました。
このプログラムは、std::vector の内容をfor文で表示するだけの例です。
#include <iostream> #include <vector> using namespace std; int main(int argc, char const* argv[]) { std::vector<int> v; v.push_back (1); v.push_back (2); v.push_back (3); for (auto x: v) { cout << x << endl; } return 0; }
clang++ -std=c++11 auto1.cpp -o auto1
C++11からは、forとauto型で非常にループが簡単になります。
#include <iostream> #include <vector> using namespace std; int main(int argc, char const* argv[]) { std::vector<int> v{1,2,3}; for (auto x: v) { cout << x << endl; } return 0; }
スポンサーリンク