2 차원 배열 : 할당 Cell **scoreTable
후론 :C++의 2D 객체 배열? 같은
scoreTable = new Ceil*[10];
for(int i = 0 ;i<10;i++)
scoreTable[i] = new Ceil[9];
그리고이 같은 값을 저장하려면 :. scoreTable[i][j]= new Ceil(i,j)
힙,이 도움을 C++로 감사 작동하지 않을 수 있습니다.
2 차원 배열 : 할당 Cell **scoreTable
후론 :C++의 2D 객체 배열? 같은
scoreTable = new Ceil*[10];
for(int i = 0 ;i<10;i++)
scoreTable[i] = new Ceil[9];
그리고이 같은 값을 저장하려면 :. scoreTable[i][j]= new Ceil(i,j)
힙,이 도움을 C++로 감사 작동하지 않을 수 있습니다.
, Cell
의 2D 배열이므로 값을 변경하는 데 new
키워드를 사용할 필요가 없습니다.
당신이 당신의 Cell
클래스를 SetValue(i,j)
같은 방법을주는 경우에, 당신은 다음과 같이 사용할 수 있습니다 : scoreTable[i][j].SetValue(i,j);
나는 너무 많이 생각했다. 고맙다. 그냥 새로운 방법을 추가한다. 좋다. – sinjon87
scoreTable[i][j]= new Ceil(i,j)
. 셀에 Cell*
을 넣으려고합니다.
당신은 포인터의 2 차원 배열을 만들 수 있습니다
auto scoreTable = new Ceil**[10];
for(int i = 0 ;i<10;i++)
scoreTable[i] = new Ceil*[9];
을하지만 훨씬 더 나은 vector
사용하는 것입니다 : 당신이 이미 가지고있는 것이 같은 배열을 할당하면
std::vector< std::vector<Ceil*> > table;
table.resize(10);
for (int i = 0; i < 10; ++i)
{
table[i].resize(9, NULL);
}
table[3][4] = new Ceil();
내가 대신 std::vector
를 사용하는 것이 좋습니다 싶습니다. 추적하는 것이 훨씬 쉽습니다.
당신은이 vector<Cell>
10 개 원소 함유 각 셀 (9)을 포함하는 벡터이다 scoreTable
를 생성한다
std::vector< std::vector< Cell> > scoreTable(10, std::vector<Cell>(9));
하여 상기 모든 코드를 대체 할 수있다. 즉, 원하는 2D 테이블.
같은 방법으로 요소에 액세스합니다. 내가 9 프론 0 가고,
새 행으로 확장합니다 8. 0에서 J scoreTable[i][j]
는 단지 말 : 새 열 들어
scoreTable.push_bach(std::vector<Cell>(9));
:
for(size_t row = 0; row < scoreTable.size(); ++row) {
scoreTable[row].push_back(Cell());
}
new
또는 delete
은 필요 없습니다.
예, 시도해 보는 것이 좋습니다. 감사합니다. – sinjon87
대신 중첩 된'std :: vector> '을 사용 해본 적이 있습니까? –
moooeeeep
읽기 http://www.parashift.com/c++-faq-lite/freestore-mgmt.html#faq-16.16 –