2012-12-17 1 views

답변

5

std::vector 즉 초과 색인 생성에 사용되는 숫자는 보통 int과 동일하지 않습니다. 따라서, 사용

std::numeric_limits<std::vector<int>::size_type>::max() 

그래서 이론적으로, 그래, 그것은 somevec.size()std::numeric_limits<int>::max()보다 큰이 가능합니다.

그러나, std::vector이이 금액보다 일반적으로 더 작은 최대 크기를 가지고, 당신은이처럼 조회 할 수 있습니다 대답에 대한

somevec.max_size(); 
+0

감사합니다. int의 자리에서 long이 사용될 때 사라지는 HDF5 라이브러리를 사용할 때이 문제가 있습니다. max_size()에 의해 지정된 제한을 늘리는 방법이 있습니까? 아니면 절대입니까? –

+0

@SumanVajjala 변경할 수는 없지만,'std :: deque' 나'std :: list'와 같은 컨테이너는 대개 더 높은'max_size'를 가지고 있습니다. – Pubby

+0

2195543407 요소를 저장할 수있는 정수 벡터가 있습니다. 그러나 어떤 이유로 22870257 개의 요소에 대한 오류가 발생합니다. 아마도 HDF5 라이브러리와 관련이 있습니다. –