모든 요소는 명시 적으로 삭제 될 때까지 삽입 후 배열의 고정 된 위치에 있어야합니다. 거기에 부스트 또는 이와 같은 것이 있습니까? 감사합니다동적 벡터와 유사한 컨테이너이지만 요소가 인덱스를 저장합니까?
0
A
답변
3
unordered_map<int, T>
또는 map<int, T>
을 사용하십시오.
또는는 vector<
optional<T>
>
을 사용하고, 대신에 실제로 그것을 삭제하는 none_t
에 삭제 슬롯을 설정합니다.
1
요소를 "삭제"하는 대신 해당 값을 null (또는 다른 "값이 없음")으로 설정하려고합니다. 그렇다면 필요한 모든 것이 일정하게 유지됩니다.
0
흥미 롭습니다. 목표는 정수에서 SLOTS 로의 매핑을 노출하는 것인데 SLOTS에 값이 포함될 수 있습니까? 아니면 각 요소의 기본 주소와 내부 배열 자체의 기본 주소를 보존하는 것이 목표입니까? 아마도 엘리먼트의 위치 나 정수 키에서 엘리먼트가 "제거 된"후에 보존 될 엘리먼트로의 매핑이 필요한 이유가있을 것이다. 그 이유는 무엇입니까? remove
, erase
, find
등의 작업이 제거 재 배열하거나 "제거"할 생각 정수를 검사하기 때문에 위에서 언급 한
map<>
또는 vector<>
구현이 작동하지 않을 수 있습니다.
불행히도 remove
정의 방법에 따라 vector<optional<T> >
또는 vector<T*>
주위에 래퍼를 사용하여 자신을 롤업해야 할 수도 있습니다.
관련 문제
- 1. 연결하여 벡터와 변수
- 2. Terracotta와 유사한 범용/동적 직렬화/마샬링이 필요합니다.
- 3. 자바에서 벡터와 점으로 사각형 만들기?
- 4. 3d 벡터와 큐브의 교차 위치
- 5. 동적 요소가 비어 있는지 확인하는 방법.
- 6. 동적 DOM 요소가 lastChild로 선택되지 않았습니다.
- 7. 동적 요소가 포함 된 jquery에서 선택 오류
- 8. 이런 계산기를 어떻게 저장합니까?
- 9. Google은 어떻게 색인을 저장합니까?
- 10. 벡터와 같은 데이터 유형이지만 정렬 됨
- 11. 비활성화 경계 C를 확인 ++ STL과 : 벡터와
- 12. STL 벡터와 함께 STL 할당 자 사용
- 13. 주어진 벡터와 직각 기초를 형성하는 행렬
- 14. 벡터와 행렬을위한 훌륭한 PHP 라이브러리가 있습니까?
- 15. django - 일부 동적 요소가 포함 된 일반적인 헤더 사용
- 16. 텍스트에서 유사한 줄 찾기 - 단계적 실행 - 동적 비교
- 17. 도우미 클래스를 별도의 어셈블리에 저장합니까?
- 18. OpenMP와 유사한 언어 컴파일러
- 19. 아이폰과 유사한 JTable
- 20. 델파이 - 설치된 구성 요소가 손실되었습니다.
- 21. jQuery Mobile - 직접 해시 URL로 이동하면 동적 요소가 실패합니다.
- 22. Eclipse와 유사한 OSGi 실행기
- 23. C++ 도움말에서 벡터 인덱스를 함수에 전달하는 방법
- 24. 유사한 입력을 유사한 출력에 매핑하는 해시 함수?
- 25. 드롭 다운 목록의 데이터는 어떻게 저장합니까?
- 26. TinyMCE에 요소가 있습니까?
- 27. NSKeyedArchiver는 어떤 형식으로 저장합니까?
- 28. 쿠키를 어떻게 저장합니까?
- 29. SelectList를 어느 저장소에 저장합니까?
- 30. 연결 문자열은 어디에 저장합니까?
"고정 위치"란 무엇을 의미합니까? 벡터의 처음이나 중간에서 요소를 삽입하거나 제거하지 않으면 해당 요소의 인덱스가 변경되지 않습니다. –
손에 무슨 문제가 있습니까? – GManNickG
@James McNellis : _any_ 요소를 삽입하거나 제거하면 다른 사람의 위치에 영향을주지 않아야합니다. 예를 들어 500 개의 요소가있는 컨테이너가 있고 처음 499 개를 모두 제거한 경우 마지막 요소는 500 번째 여야하며 컨테이너의 크기도 변경되지 않아야합니다. – szx