Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- QT
- Visual SLAM
- Gazebo
- 자율탐사
- Simulation
- RTK
- C++
- 강화학습
- WSL2
- ROS2
- 젯슨
- 아두이노
- 로봇
- 오블완
- GUI
- 인공지능
- SLAM
- U-blox
- Puck LITE
- Jetson
- turtlebot3
- 티스토리챌린지
- 터틀심
- turtlesim
- GPS
- ubuntu
- ROS
- 자율주행
- WSL
- ZED2
Archives
- Today
- Total
직관적인느낌
std:: vector와 힙/스택/큐 본문
728x90
반응형
- std::priority_queue:
힙 구조를 사용하여 항상 가장 높은 (또는 낮은) 우선순위를 가진 요소에 빠르게 접근할 수 있습니다.
일반적으로, 요소를 추가하거나 제거하는 연산은 로그 시간에 가능하며,
가장 높은 우선순위를 가진 요소에 접근하는 연산은 상수 시간에 가능합니다.
- std::stack:
LIFO(Last In, First Out) 방식의 데이터 구조로, 데이터가 추가되고 제거되는 위치가 동일합니다.
즉, 가장 마지막에 들어온 요소가 먼저 나가게 됩니다.
랜덤 액세스는 지원하지 않으며, 요소를 추가하거나 제거하는 연산은 상수 시간에 가능합니다.
- std::queue:
FIFO(First In, First Out) 방식의 데이터 구조로, 데이터가 추가되는 위치(백)와 제거되는 위치(프론트)가 다릅니다.
따라서, 항상 가장 먼저 들어온 요소가 먼저 나가게 됩니다.
랜덤 액세스는 지원하지 않으며, 요소를 추가하거나 제거하는 연산은 상수 시간에 가능합니다.
- std::vector:
동적 배열로, 요소를 추가하거나 제거함으로써 크기를 동적으로 변경할 수 있습니다.
랜덤 액세스가 가능하므로 인덱스를 사용하여 요소에 직접 접근할 수 있습니다.
또한, 메모리는 연속적으로 할당되므로 캐시 효율성이 높습니다.
"선입 선출 필요없다."
728x90
반응형
'공학' 카테고리의 다른 글
TBB(Threading Building Blocks)와 concurrent_queue/concurrent_vector [+일반 컨테이너] (0) | 2024.01.09 |
---|---|
std::mutex 와 lock/unlock (0) | 2024.01.09 |
Github 코드 수정 및 branch 생성 (0) | 2023.03.25 |
[review] 자전거 강화학습 - 본문 (0) | 2023.02.08 |
[review] 자전거 강화학습 - Intro (0) | 2023.02.06 |