안녕하세요, 벡터처럼 인덱싱 할 수있는 stl 컨테이너가 필요하지만 벡터에서 크기를 조정하거나 예약 할 때처럼 메모리의 이전 요소를 이동하지 않습니다 (모든 요소를 충분히 수용 할 수있을만큼 처음에는 예비를 호출하지 않는 한, 그것은 나를 위해 좋지 않다). (필자는 요소에 대한 바인딩을 처리하므로 이러한 요소의 주소가 변경되지 않을 것으로 예상됩니다.) 그래서 나는이 양동이를 발견했습니다. 이 목적에 도움이된다고 생각하십니까? 중요 : 푸시 백만 있으면되지만 필요에 따라 컨테이너를 조금씩 커야합니다.내 요소를 다시 할당 할 필요가 없습니다 (C++)?
5
A
답변
10
std::deque
요소를 뒤쪽이나 앞쪽에 추가하거나 제거 할 때 "요소 나 요소에 대한 참조가 무효화되지 않습니다."예, push_back
요소 만 제 위치에 있으면.
3
the documentation을주의 깊게 읽으면 시작 또는 끝 부분에 삽입하면 포인터가 무효화되지 않으며 포인터를 무효화한다는 것은 데이터가 복사 또는 이동되고 있음을 나타내는 기호임을 나타냅니다.
구성 방법은 각 요소가 개별적으로 할당되는 링크 된 목록과는 달리 성능상의 이유로 연결된 배열 집합으로 간주됩니다. 중간에있는 요소의 순서를 변경하면 데이터 이동이 필요합니다.
+2
더 많은 배열 배열과 비슷합니다. 링크 된 배열은 링크 된 목록보다 훨씬 나은 트래버스를 제공하지만 임의 액세스는 제공하지 않습니다. – Puppy
관련 문제
- 1. 특정 요소를 클릭하면 입력시 .blur()를 활성화 할 필요가 없습니다.
- 2. 다시 생성 할 필요가 없도록 페이지 캐싱?
- 3. jQuery 플러그인, 값을 다시 전달, 요소를 실행할 필요가 없음
- 4. 대리자를 할당 할 수 없습니다.
- 5. 할당 연산자 오버로드 다루기; 참조를 다시 할당 할 수 있습니까?
- 6. C# 익명 형식을 할당 할 수 없습니다 - 읽기 전용입니다
- 7. 패널 내 텍스트 상자에 값을 할당 할 수 없습니다.
- 8. 요소를 배치 할 수 없습니다.
- 9. codeigniter에서 클래스/라이브러리를 확장 할 필요가 없습니다.
- 10. ImageMagick 코드를 편집 할 필요가 없습니다. 확인해주세요.
- 11. 재생 프레임 워크. 컴파일 할 필요가 없습니다
- 12. 제목별로 요소를 찾을 필요가 있습니다.
- 13. C++에서 struct를 C#으로 다시 반환 할 수 없습니다.
- 14. 할당 할 필요가 있는지, 배포해야하는지 어떻게 알 수 있습니까?
- 15. objective-c 객체에 gdb 편의 변수를 할당 할 수 없습니다.
- 16. 내가 추가 할 필요가
- 17. 새로운 연산자가 메모리를 할당 할 수 없습니다
- 18. C#의 UI 구성 요소를 업데이트 할 수 없습니다.
- 19. 할당 할 수 없습니다 또는 UIViewController 동안 NSArray 할당
- 20. 은 $ _SESSION에 값을 할당 할 수 없습니다
- 21. 내가 할 내 웹 서버에 URL을 직접 할 필요가
- 22. UIWebview에서 텍스트를 할당 할 수 없습니다
- 23. qstring 변수에 할당 할 수 없습니다
- 24. ValueError : django에서 할당 할 수 없습니다.
- 25. 클래스 Zend_Loader를 다시 선언 할 수 없습니다.
- 26. WPF - UserControl에 스타일을 할당 할 수 없습니다.
- 27. DateTime? 값을 할당 할 수 없습니다.
- 28. 배열을 다른 배열에 할당 할 수 없습니다.
- 29. RoutedEvent를 Binding.TargetUpdated에 할당 할 수 없습니다.
- 30. 할당 연산자 C++ NULL 할당
고마워요! 크기를 조정하지 않고 푸시 백을 사용할 수 있습니까? resize는 요소를 움직일 수 있습니다. – user1132655
@ user1132655 : 물론, 단지'push_back'. 왜 당신이'크기 조정 '을해야한다고 생각하니? 조기 최적화라고 생각합니다. –
죄송합니다. 요청해야합니다. 크기를 조정하면 최적화가 내 요소를 변경할 수 있으므로이 경우에는 사용하지 말아야합니다. – user1132655