Loading [MathJax]/extensions/tex2jax.js

2014年9月28日日曜日

C++11のテスト

早速C++11の機能を試してみます。

推論型(auto)

C++は変数の型は明示的にしてはっきりさせなければならないが、テンプレート型などを利用すると複雑になってしまう。
それを簡単に書くために推論型が追加された。

下記の例ではイテレータをautoを利用して簡潔な記述になっている。

[auto.cpp]

  1. #include <iostream>  
  2. #include <vector>  
  3.   
  4. //推論型のテスト  
  5. int main() {  
  6.   
  7.   using namespace std;  
  8.   
  9.   vector<int> nums;  
  10.   
  11.   nums.push_back(10);  
  12.   nums.push_back(20);  
  13.   nums.push_back(30);  
  14.   nums.push_back(40);  
  15.   nums.push_back(50);  
  16.   
  17.   //before C++  
  18.   //vector<int>::iterator it = nums.begin();  
  19.   auto it = nums.begin();  
  20.   
  21.   while(it != nums.end()) {  
  22.     cout << *it << endl;  
  23.     ++it;  
  24.   }  
  25.   
  26.   return 0;  
  27.   
  28. }  
C++11のコンパイル C++11対応のコードをg++でそのままコンパイルするとエラーが出るので コンパイルするには-std=c++11 オプションをつけてコンパイルします。 $ g++ -std=c++11 auto.cpp -o auto
でコンパイル出来れば成功です。

0 件のコメント:

コメントを投稿

Pythonで地図空間データを扱う⑤

ベースの地図が出来た所で、他のデータを被せてみます。 国土地理院の  500mメッシュ別将来推計人口データ  を使用します。 同じく神奈川県のデータ  500m_mesh_suikei_2018_shape_14.zip をダウンロードします。 ベースの地図データと同じ場所に展開...