のんびりしているエンジニアの日記

ソフトウェアなどのエンジニア的な何かを書きます。

C++11 STL Array

Sponsored Links

皆さんこんにちは
お元気ですか?私は元気です。

C++11の新機能のArrayについて記載したいと思います。

Array(STL)の特徴

STLのArrayには大きな特徴がひとつあります。
algorithmのヘッダーを使えるので、fillやfindを使えることですね。

実際のソースコード

#include <array>
#include <algorithm>
#include <iostream>

using namespace std;

template<typename T>
void printArray(T arr){
	for(auto element:arr){
		cout << element << endl;
	}
}

int main(int argc, char const *argv[]){
	array<int,3> arr = {10,20,30};

	//普通の配列だとこの書き方はできない
	printArray(arr);
	fill(arr.begin(),arr.end(),2);
	printArray(arr);
	auto iter = find(arr.begin(),arr.end(),40);

	if(iter != arr.end()){
		cout << "発見" << endl;
	}else{
		cout << "みつからないよ!" << endl;
	}
}

実行結果

10
20
30
2
2
2
みつからないよ!

fillが使えます。

fill(arr.begin(),arr.end(),2);

これを通常の配列で使うなら以下のようにする必要があります。

for(int i = 0; i < 10; i++){
    arr[i] = 2;
}

このようにalgorithmにある関数を利用できることによって様々な実装を簡単にすることができます。