게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[c++] 2d array 질문있습니다.
게시물ID : programmer_6185짧은주소 복사하기
작성자 : 쌍츄니
추천 : 0
조회수 : 487회
댓글수 : 4개
등록시간 : 2014/10/26 13:06:15
옵션
  • 본인삭제금지
프로그래머 게시판 계속 눈팅만 하다가 처음으로 질문 남기네요 ㅎㅎ

몇년동안 Processing(JAVA)만 사용하다 최근에 OpenFrameworks 를 공부하는 학생입니다.
JAVA에서는 2D array를 사용할때 그냥

ArrayList [][] table = new AraayList[column size][row size];
table[0][0] = new ArrayList(data type or value); //[0,0] 에 데이터/값 입력
혹은
List<List<dataType>> table = new ArrayList<List<dataType>>();
이런식으로 declare한후 사용을 하면 되는것으로 알고있는데요.

C++에서는 JAVA처럼 간단하게 declare를 할수가 없더군요.
구글링 결과

vector< vector <dataType> > table;
table.resize(col size);
for (int i=0; i <col size; i++){
table[i].resize(row size);
for(int j = 0; j<rowsize; j++){
table[i][j] = new dataType();
}

혹은
2d 포인터 array
Table **mytable; mytable = new Table*[size];
이런식으로 접근해야 하는것으로 알고있는데요.

제가 궁금한부분은 2d vector 와 2d pointer array 의 장단점이 무었인지, 어떨때 vector를 쓰고 어떨때 pointer를 써야하는지 궁금합니다.
여기저기 돌아다니며 알아본 바로는 vector 는 instances를 담을수 없기때문에 레퍼런스 혹은 포인터를 값으로 넣어줘야하고
pointer는 그냥 메모리만 확보해놓은것이기에 좀더 유기적으로 사용할수있는것이라고 하는데, 그럼 포인터 array 안에 base & sub class의 instance 를
섞어서 담을수도 있는지 궁금합니다.

아 그리고, 실질적으로 포인터/레퍼런스/디레퍼런스 를 사용하는 예시는 어디가면 찾을수 있을까요?
인터넷에는 너무 이론적이고, int나 string을 사용한 예시만 나와서 실질적으로 class 상속이나 서로다른 오브젝트들을 array에 넣는 방법같은건
잘 나오지 않아서 이해하기 어렵더라구요.

c++를 제대로 이해햐지 못하고 질문하는점 죄송하지만, 넓은 아량으로 이해해주셨으면 좋겠습니다 ㅠ


 
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호