配列、テンプレート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つの要素ごとにデータをコピーしなければならないことに注意する.