애들센스


Making 2D/3D array with the Vector C/C++

STL의 vector라이브러리를 이용하면 쉽게 2차원 또는 3차원 배열을 만들 수 있다. 다음은 vector를 이용하여 2차원과 3차원 배열을 만드는 예이다.

아래의 예는 5개의 원소를 가진 벡터(기본값 3)를 만들고 이를 보여준다. 그리고 다시 이걸 이용하여 4개의 행을 가진 행렬을 만든다. (4 by 5 행렬) 다시 마지막으로 앞의 행렬을 이용하여 3차원 배열( 3 by 4 by 5 배열)을 만든다.
#include <iostream>
#include <stdlib.h>
#include <vector>

using namespace std;

int main(int argc, char *argv[])
{
//////////////////////////////////////////////////
cout<<"1D Vector"<<endl;
vector<int> myvec(5,3);
for(unsigned int j=0;j<myvec.size();j++)
cout<<myvec[j]<<endl;
cout<<endl;

//////////////////////////////////////////////////
cout<<"2D Vector"<<endl;
vector< vector<int> > myvec2D(4,myvec);

for(unsigned int i=0;i<myvec2D.size();i++)
{
for(unsigned int j=0;j<myvec.size();j++)
{
cout<<myvec2D[i][j]<<" ";
}
cout<<endl;
}
cout<<endl;

//////////////////////////////////////////////////
cout<<"3D Vector"<<endl;
vector< vector< vector<int> > > myvec3D(3,myvec2D);
for(unsigned int k=0;k<myvec3D.size();k++)
{
for(unsigned int i=0;i<myvec2D.size();i++)
{
for(unsigned int j=0;j<myvec.size();j++)
{
cout<<myvec3D[k][i][j]<<" ";
}
cout<<endl;
}
cout<<endl;
}
system("PAUSE");
return 0;
}
실행결과는 아래와 같다.
1D Vector
3
3
3
3
3

2D Vector
3 3 3 3 3
3 3 3 3 3
3 3 3 3 3
3 3 3 3 3

3D Vector
3 3 3 3 3
3 3 3 3 3
3 3 3 3 3
3 3 3 3 3

3 3 3 3 3
3 3 3 3 3
3 3 3 3 3
3 3 3 3 3

3 3 3 3 3
3 3 3 3 3
3 3 3 3 3
3 3 3 3 3

계속하려면 아무 키나 누르십시오 . . .


덧글

댓글 입력 영역