2012-12-10 3 views
1

dinamically 초기화 된 다른 벡터 안에 저장된 벡터의 요소를 "cout"으로 액세스하고 인쇄하려면 어떻게해야합니까?새롭게 초기화 된 벡터의 벡터 액세스 및 인쇄

따라서, 예를 들어 나는 벡터와 나는 매우 큰 수를 필요로하기 때문에 "새로운"

vector<int> v1; 
v1.push_back(1); 
v1.push_back(2); 
vector<vector<int> >* vV = new vector<vector<int> >(); 
vV->push_back(v1); 
// way to access v1[0] from vV and way to cout << vV[0][0] (just an example) 

나는 새와 벡터의 벡터를 만드는거야 만들어 벡터의 벡터를, 그래서 힙에 할당 할 필요가있다. 마치 스택에 할당하는 것처럼 충돌한다.

+4

'new'로 할당하는 것은 좋지 않습니다. 벡터를 만들면 데이터의 * 작은 * 비트가 무료 저장소 (즉, '새'를 사용하여)에서 할당됩니다. –

+0

0 ints의 벡터는 스택의 정확히 동일한 공간을 1 백만 개의 벡터로 구성되며 각각 100 만 개의 정수입니다. –

답변

3

괄호를 사용 :

std::cout << (*vV)[0][0] << std::endl; 
2

사용 간접 및 at();

cout << vV->at(0)[0] << endl; 
+1

std :: vector :: at의 경계 검사가 필요하지 않은 경우 첨자 연산자를 사용하는 irrelephant의 대답이 더 효율적입니다. – goji

+2

@ 트로이, 그리고 첫 번째 장소에서 포인터를 사용하지 않는 것이 더 좋습니다 :) – chris