配列、テンプレートarray、テンプレートvectorの比較

840 ワード

簡単な例を先に示します.
 
#include 
#include 
#include 

int main()
{
	using namespace std;

	//C,original C++
	double a1[4] = {1.2,2.4,3.6,4.8};
	//C++98 STL
	vector a2(4);     			//creat vector with 4 elements
	//no simple way to initinaize in C98
	a2[0] = 1.0/3.0;
	a2[1] = 1.0/5.0;
	a2[2] = 1.0/7.0;
	a2[3] = 1.0/9.0;
	//C++ -- creat and initinaize array object
	array a3 = {3.14,2.72,1.62,1.41};
	array a4 ;
	a4 = a3;  							//valid for array objects of same size
	
	return 0;
}
は、まず、配列、vectorオブジェクト、arrayオブジェクトにかかわらず、標準的な配列表現を使用して各要素にアクセスできることに注意する.次に、アドレスから分かるように、arrayオブジェクトと配列は同じメモリ領域(スタック)に格納され、vectorオブジェクトは別の領域(スタック)に格納される.第三に、1つのarrayオブジェクトを別のarrayオブジェクトに割り当てることができ、配列については1つの要素ごとにデータをコピーしなければならないことに注意する.