*알고리즘 ( <algorithms> )라이브러리 : 데이터를 정렬, 탐색, 처리하는 함수 모음, 대표적으로 정렬을 하는 sort(), find()
sort() 와 stable_sort()의 차이
- sort() : 값이 있어도 들어온 순서를 고려하지 않고 정렬하는 것
- stable_sort() : 같은 값이 있을 때 들어온 순서를 고려야하여 정렬하는 것을 말한다.
sort(vec.begin(), vec.end(), greater<int>()); >> greater<int>() 했을시 내림차순 정렬됨
자율주행에서 이 개념을 도입해보자,
🎯 🚗 자율주행에서는 언제 필요할까?
- 차량 리스트를 "속도" 기준으로 정렬하는데, 같은 속도일 때 "먼저 감지된 차량" 순서 유지해야 할 때 👉 stable_sort()
- 장애물 거리를 정렬할 때, 그냥 가까운 순서대로만 정렬하면 됨 👉 sort()
최종정리하면,
🚀 최종 정리
- sort(): 같은 값이 있어도 들어온 순서를 고려하지 않고 정렬
- stable_sort(): 같은 값이 있을 때 들어온 순서를 유지하면서 정렬
--
auto 키워드의 사용시 이점
🚀 auto를 사용하면 뭐가 좋아?
1️⃣ 긴 타입 선언을 줄일 수 있음 (특히 STL 컨테이너에서 유용함)
2️⃣ 코드가 짧아지고 가독성이 좋아짐
3️⃣ 유지보수가 쉬워짐 (타입이 바뀌어도 auto는 자동으로 맞춰짐)
예를 들면,
컨테이너 함수 vector()에서 보자,
선언시
vector<int> vec = {1,2,3,4,5} 와 같이 긴 코드이다.
이를
auto vec = vector<int>{1,2,3,4,5} 로 줄일 수 있다.
> 타입을 자동으로 추론
그러나, auto를 남발 사용은 금지다.
auto 키워드는 사용에 편의성은 있지만 컴파일러에게 자료형 추론을 하는 데 많은 연산을 맡기는 것이므로 적절한 곳에서 제한적으로 사용해야한다.
'**Autonomous driving tech. > *C++' 카테고리의 다른 글
[C++] 03.17 review Unique_ptr (0) | 2025.03.17 |
---|---|
[C++] 03.14 review <cmath>, <vector> (0) | 2025.03.14 |
[C++] 03.04 review (0) | 2025.03.04 |
[C++] 03.03 review (0) | 2025.03.03 |
[C++] 03.02 review (0) | 2025.03.02 |