C++プログラミング->array(配列)

2570 ワード

Arrayは固定サイズのシーケンスコンテナです.一定数の要素を持ち、厳密な線形シーケンスに整理されています.
内部の配列コンテナには、テンプレートパラメータのサイズであっても、独自の配列要素以外のデータは保存されません.
通常の配列がストレージスペースサイズ[]を宣言する方法と同様に有効です.
Arrayクラスは、標準コンテナのように使用できるように、グローバル関数を追加しただけです.
他の標準コンテナとは異なり、Arrayのサイズは決定され、割り当てられた演算子によって要素が管理されません.Arraysは、サイズを決定する要素配列をカプセル化した集約タイプです.従って、Arraysは動的に拡大または縮小することはできない(類似のvector容器を参照すれば、その大きさは拡大可能である).
ゼロサイズのArraysは有効ですが、メンバー関数front、back、dataで間接的に参照することはできません.
他の標準ライブラリのコンテナ操作とは異なり、2つの配列コンテナを交換することは、1回の操作で範囲内のすべての要素を個別に含む交換操作であり、通常はかなり有効な操作である.言い換えれば、要素の反復器は、2つの配列コンテナの元の関連付けを保持することができる.
もう1つの唯一の特性はArrayコンテナがtupleクラスとして処理できることであり、ヘッダファイルにget関数アクセス配列の要素が再ロードされている場合、tupleおよび専用tuple_sizeとtuple_elementタイプ.下にコードを貼ります.vectorと似ています.違いは上にも言いました.コードは以下の通りです.
	//  
	array<float,6>array1={34,23,45,12,22,56};
	//   (      )        
	for (auto iterator1=array1.begin();iterator1!=array1.end();++iterator1)
	{
		cout<<*iterator1<<' ';
	}
	cout<<endl;
	//       
	for ( float& x : array1 ) std::cout <<x << ' ';
	cout<<endl;
	//       
	for (int i=0;i<6;i++)
	{
		cout<<array1.at(i)<<' ';
	}
	cout<<endl;
	//       
	for (int i=0;i<6;i++)
	{
		cout<<array1[i]<<' ';
	}
	cout<<endl;
	//       
	for (auto iterator1=array1.rbegin();iterator1!=array1.rend();++iterator1)
	{
		cout<<*iterator1<<' ';
	}
	cout<<endl;
	//         const     
	for (auto iterator1=array1.cbegin();iterator1!=array1.cend();++iterator1)
	{
		cout<<*iterator1<<' ';
	}
	cout<<endl;
	//       const     
	for (auto iterator1=array1.crbegin();iterator1!=array1.crend();++iterator1)
	{
		cout<<*iterator1<<' ';
	}
	cout<<endl;

	//array data  
	const array<float,6>array3={34,23,45,12,22,56};
	array<float,6>array2;
	memcpy(array2.data(),array3.data(),24);
	for (auto iterator2=array2.begin();iterator2!=array2.end();++iterator2)
	{
		cout<<*iterator2<<' ';
	}
	cout<<endl;

	cout<<array1.front()<<endl;  //       
	cout<<array1.back()<<endl;   //        
	cout<<"size is :"<<array1.size()<<endl; //    
	cout<<"max size is:"<<array1.max_size()<<endl;
	cout<<endl;

出力は以下の通り:34 23 45 12 22 56 34 34 23 45 12 22 34 34 23 45 12 22 56 34 23 45 12 22 22 56 22 45 23 34 23 45 12 22 56 22 45 23 34 34 34 34 23 45 12 22 56 34 34 23 45 22 56 34 size is:6 max size is:6