동적 프로그래밍 프로그램을 구현하기 위해 벡터를 사용하여 벡터의 각 요소를 순차적으로 업데이트합니다. 그러나 변하지 않는 벡터에 대해 vector-set
이없는 이유는 변하지 않는 벡터에 대해서만 vector-set!
이 있습니다. 그러나 불변의 변경 가능한 사전에 대해서는 dict-set
과 dict-set!
이 있고 변경 가능하고 변경 가능한 해시 테이블에는 hash-set
과 hash-set!
이 있습니다.불변의 벡터 업데이트 요소
1
A
답변
2
vector-set
이 누락 된 이유는 조작을 실현하지 않고 실수로 사용하는 사람을 막는 것입니다. O(n)
이 아니고 O(1)
이 아닙니다. vector-set!
이 O(1)
이기 때문에 누군가가이 실수를 저 지르지는 않습니다.
#lang racket
(define (vector-set v i o)
(vector->immutable-vector
(for/vector ([j (in-range (vector-length v))])
(if (= i j)
o
(vector-ref v j)))))
(vector-set (vector-immutable 10 11 12 13) 2 'a)
:
'#(10 11 a 13)
+0
답변 해 주셔서 감사합니다! – fluter
관련 문제
- 1. 가변적 인 vs 불변의 벡터 수학 최적화
- 2. 불변의 트리에서 효율적인 랜덤 업데이트
- 3. 업데이트 불변의 데이터 구조는 상속
- 4. 요소 벡터
- 5. 벡터 요소
- 6. 인덱스로 벡터 요소 복제
- 7. STL 벡터 : 요소 반복
- 8. 제거 요소 : 벡터
- 9. 벡터 끝에 요소 추가
- 10. C++ 벡터 복사 요소?
- 11. 추출물 요소/벡터 예컨대
- 12. 벡터 배열에 요소 추가
- 13. 벡터 추가 요소
- 14. CStringArray에 벡터 요소 할당
- 15. 벡터 요소 변경
- 16. 지우기 요소 같은 벡터
- 17. 벡터 요소 개체 반복
- 18. 파이썬에는 불변의 목록이 있습니까?
- 19. 잡히지 않는 불변의 위반
- 20. 별도의 스레드에서 벡터 요소 처리
- 21. 곱하기 벡터 요소 상응 C++
- 22. CUDA를 사용하여 벡터 요소 최적화하기
- 23. 해당 위치의 벡터 요소 수정
- 24. C++ 벡터 구현 - 요소 제거
- 25. 벡터 요소 제거의 적절한 구현
- 26. 홀수 벡터 요소 찾기 C++
- 27. Matlab의 배열/벡터 요소 필터링
- 28. iOS의 벡터 그래픽 PDF 요소
- 29. 벡터 오류에서 요소 제거 C++
- 30. 루프 내의 벡터 요소 삭제
당신 말이 맞아, 아니이 기능'벡터 set' 작업에 내장이없는이 정말 필요할 때
은 또한
vector-set
를 작성하는 간단 . 그러나 이것을 직접 지원하는 영구 벡터를 제공하는 라이브러리가 있습니다. 예를 들어 [pvector] (http://docs.racket-lang.org/pvector/index.html) 라이브러리는 [set-nth]를 지원합니다 (http://docs.racket-lang.org/collections/collections- api.html # % 28def ._ % 28 % 28lib._data % 2Fcollection..rkt % 29._set-nth % 29 % 29) 및 [update-nth] (http://docs.racket-lang.org/collections /collections-api.html#%28def._%28%28lib._data%2Fcollection..rkt%29._update-nth%29%29) 기능 업데이트를위한 작업입니다. –@AlexKnauth 예. pvector에게 감사드립니다. 그렇지만 왜 그런지 궁금합니다. 그 이유는 '벡터 세트'를 가질 수 없었습니다. – fluter
'pvector' 라이브러리는 어떻게 구조화 되었기 때문에 전체 벡터를 복사하여 기능적으로 업데이트 할 필요가 없습니다. 그러나 내장 된 벡터는 그러한 구조를 가지고 있지 않으므로 내장 된 벡터에있는 기능상의 '벡터 세트'는 모든 것을 복사해야합니다. 그게 왜 빠졌는지도 모르겠지만 확실하지는 않습니다. –