2014年9月28日日曜日

C++11のテスト

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

推論型(auto)

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

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

[auto.cpp]

#include <iostream>
#include <vector>

//推論型のテスト
int main() {

  using namespace std;

  vector<int> nums;

  nums.push_back(10);
  nums.push_back(20);
  nums.push_back(30);
  nums.push_back(40);
  nums.push_back(50);

  //before C++
  //vector<int>::iterator it = nums.begin();
  auto it = nums.begin();

  while(it != nums.end()) {
    cout << *it << endl;
    ++it;
  }

  return 0;

}

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 をダウンロードします。 ベースの地図データと同じ場所に展開...