2013-11-04 4 views
0

저는 벡터를 만들고 싶습니다. 그리고이 벡터의 각 셀에서 정의한 특정 구조체를 포함 할 다른 벡터를 유지하고 싶습니다. 내가 어떻게해야하니? 기본 벡터의 각 셀에서 다른 벡터 (정의 된 구조체 포함) 각각에 대한 포인터를 정의해야합니까? 포인터를 사용하여 벡터가 생성 된 메모리에 액세스해야합니까? 내가 그 일을 생각하는 방법을 C++에서 벡터 벡터를 정의하는 방법은 무엇입니까?

는하지만, 솔직히 내가 뭐하는 거지 정말 확실하지 않다 :

vector<*vector> *vec = new vector<vector> 

참고 : 난 그렇게 나를 쉽게 갈 일반적으로 프로그래밍에 C++에서 초보자 및 새로운 오전 이 한명의 친구들.

덕분에 많은

+4

가 어떻게 <>'C++에서 * 아무것도 *의'표준 : : 벡터를 정의 할 수 있습니다? 그것부터 시작하십시오. 지금 재발 ... 한 번. – WhozCraig

+3

나는 이것이 무언가의 중복이 아니라고 믿기가 어렵다. – Duck

답변

4

일반적인 규칙이 필요하지 않는 포인터 (동적 할당)를 사용하지 않는 것입니다. 그래서 당신은 단순히이 작업을 수행 할 수 있습니다

std::vector<std::vector<your_struct> > vector_of_vectors; 
+0

모두에게 감사드립니다! –

1

을 당신은 아무것도의 벡터의 인스턴스를 하듯이 :

std::vector<std::vector<MyType>> v; 

포인터가와는 아무 상관이 없다합니다. 포인터의 벡터가 필요한 경우에만 포인터 벡터를 사용합니다.

1
당신은 포인터를 필요가 없습니다

, 당신은 단지

std::vector<std::vector<int>> vec(100); // create a vector of 100 vector<int> 
vec[42].push_back(1764); // add an element to the 43rd vector<int> 
관련 문제