2010-07-27 5 views
0

예를 들어 약 10 개의 요소가있는 배열이 있습니다.이전 요소를 std :: deque에서 가져 오는 방법?

std::deque<int> d; 
front_inserter(d) = 100; 
front_inserter(d) = 200; 
front_inserter(d) = 300; 
... 
front_inserter(d) = 900; 
front_inserter(d) = 1000; 

질문 : 어떻게 900 요소 [] 액세스를 사용없이 를 찾는 방법은? 거대한 크기가 변경되면 (예 : 123), 122 요소를 찾는 방법은?

PS :이 방법은 d[-1] 체크 ...

감사를 수행하지 않기 때문에 나는 []를 사용하지 않습니다.

답변

1

deque :: at를 사용하십시오.

d.at(121)

+0

이렇게 확인 하시겠습니까? -'d.at (d.size() - 1)'? – mosg

+0

예. d.size() == 0 인 경우에는 –

+0

예외가 있어야합니다. STL을 사용하지 않고 프로그램 논리를 사용하여이 솔루션을 다른 방법으로 해결했습니다. 어쨌든 감사합니다. – mosg

0

당신이 (POS)에서 사용할 수있는 바운드 액세스 :: 중의 경우에 던지는 런타임 검사를 의미합니다. d [-1]이 마지막 요소이고, d [-2]가 두 번째라고하는 경우 (a-la Python) 그런 다음 자신 만의 (템플릿 일 수도 있음) 함수를 코딩해야합니다.

+0

아니요, 서로 다른 크기를 가질 수있는 deque-array에서'second-last' 요소를 가져 오는 메소드가 필요합니다 ... – mosg

관련 문제