제가 알고 있듯이 deque는 순환 버퍼이며, 공간이 부족할 경우 새로운 공간을 할당합니다 (가능한 경우). deque가 커질 수있는 것을 제한 할 수있는 방법이 있습니까? 최대 크기 이상으로 커지지 않게하는 유일한 방법은 데이터를 양면 큐에 삽입 할 때마다 확인하는 것입니다.deque max_size를 최대 크기로 설정하십시오.
0
A
답변
2
예, 모든 STL 모음에서와 마찬가지로 템플릿 매개 변수 중 하나는 할당 자입니다.
따라서 메모리를 추적 할 수있는 사용자 지정 할당기를 작성할 수 있으며이 제한을 초과하면 메모리를 사용할 수 있다고하더라도 을 버립니다.
부수적으로, std::deque
은 일반적으로 각 페이지에 고정 된 수의 요소가 들어있는 "페이지"모음으로 구현됩니다.
"어디서든지"삽입하거나 삭제할 수있는 순환 버퍼 구현을 원할 경우 을 사용하면 가장 효율적이지 않으므로 std::list
이됩니다 (부스트에서 사용할 수있는 순환 컬렉션이 있지만 사용할 수 있음).
1
deque
은 순환 버퍼가 아니며; 일반적으로 배열의 링크 된 컬렉션으로 구현됩니다. 순환 버퍼의 경우 부스트에서 circular_buffer
을 확인하십시오.
0
대기열은 원형 버퍼가 아닙니다. 순환 버퍼로 구현 될 수 있지만 구현 세부 사항은 사용자에게 표시되지 않습니다. 크기 검사를하기 위해 래퍼 클래스 또는 편의 함수를 작성하는 것이 좋습니다.
1
내 경험으로 간단한 방법은 래퍼 클래스에 의해 양단 큐를 캡슐화 push_back
및 push_front
관련 문제
- 1. CGImageRef의 최대 크기를 ALAssetRepresentation에서 설정하십시오.
- 2. 최대 크기로 로그 파일을 만드는 방법은 무엇입니까?
- 3. Facebook og : 이미지가 최대 크기로 표시되지 않습니다.
- 4. 최대 크기로 이미지를 표시하도록 UITableViewCell 크기 조정
- 5. SqlParameter 크기 - 최대 크기로 설정하면 부정적입니까?
- 6. jQuery를 사용하여 두 요소를 최대 크기로 조정
- 7. 비동기 배치 쿼리도 최대 응답 크기로 제한됩니까?
- 8. python deque/list filtering
- 9. mengoengine에서 deque 구조를 에뮬레이트하십시오.
- 10. Deque 클래스 작성 메소드
- 11. 벡터 포인터의 deque 초기화
- 12. DEQUE char [4] [4]
- 13. C# - Java의 Deque
- 14. MySQL SELECT 결과의 최대 문자열 크기를 설정하십시오.
- 15. Box2D JavaScript 객체에 최대 속도를 설정하십시오.
- 16. exec()의 최대 실행 시간을 설정하십시오.
- 17. wxPython에서 ScrolledWindow가있는 Frame의 최대 너비를 설정하십시오.
- 18. 목록보기에 표시 할 최대 행 수를 설정하십시오.
- 19. ImageView의 최대 너비를 상위 너비의 백분율로 설정하십시오.
- 20. Silverlihgt에서 DatePicker 컨트롤의 최소/최대 날짜를 설정하십시오.
- 21. Win32 C++의 잠금없는 Deque
- 22. C에서 이중 링크 된 Deque
- 23. 순환 배열 deque 확장 문제
- 24. #include Xcode4에 <deque>
- 25. 파이썬에서 벡터 클래스의 deque 생성
- 26. 열 너비를 해당 열의 최대 값 크기로 확장 하시겠습니까?
- 27. JScrollPane을 JList 주위의 고정 된 최대 크기로 설정하는 방법
- 28. 명령 줄에서 최대 2MB 크기로 이미지 크기를 조정할 수 있습니까?
- 29. log4j를 무제한 최대 파일 크기로 설정하는 방법은 무엇입니까?
- 30. 대화 상자 스타일 활동에서 이미지를 최대 크기로 조정하는 방법
cutsom 할당이 문제에 대한 잘못된 접근 것으로 보인다 포장이 개 멤버 함수를 작성합니다. deque에 대해 요청 된 메모리 양과 deque 크기 사이에는 엄격한 관계가 없습니다. 물론 벡터의 크기와 용량 사이에는 그러한 관계가 없습니다. – john
deque 구현 그 자체와 할당 자 사이의 관계와 어느 쪽이 페이지 크기를 선택했는지를 여러분은 아마 언급하고있을 것입니다. 따라서, 당신이 원하는 최대 메모리 할당을 기준으로했을 때 완벽하게 튜닝 할 수는 없습니다. 이 객체를 허용하면 할당 자 (allocator)가이를 관리 할 수 있습니다. 실제로는 임계 값에 정확히 도달 할 수 없다는 것을 알 수 있습니다. – CashCow