일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 대상파일
- 동적링크
- 스레드전용저장소
- 재배치
- 행렬
- 백준
- linear algebra
- 정적링크
- 알고리즘
- 선형대수학
- 스레드전용리소스
- 다이나믹 프로그래밍
- eigenvalue
- vector
- 컴퓨터밑바닥의비밀
- 코드포스
- 심벌 해석
- 다익스트라
- unity
- 컴파일러
- c++
- 벡터
- CS정리
- Rust
- rust 스터디
- column space
- 구문트리
- matrix
- 링커
- 적재도구loader
- Today
- Total
개발_기록용
[RUST vs C++] 16. 표준 라이브러리 본문
https://google.github.io/comprehensive-rust/std-types.html
Standard Library Types - Comprehensive Rust 🦀
This segment should take about 1 hour and 20 minutes. It contains: SlideDuration Standard Library3 minutes Documentation5 minutes Option10 minutes Result10 minutes String10 minutes Vec10 minutes HashMap10 minutes Exercise: Counter20 minutes For each of the
google.github.io
Rust의 표준 라이브러리는 c++의 것과 궤가 많이 다르다.
C++의 표준 라이브러리
C++의 표준 라이브러리는 STL이라 부르고, 굉장히 많다.
그래프 알고리즘, 2D 그래픽, 네트워크고 들어올랑 말랑 하는 중.
✔ 희대의 명령, std::move. 이건 어떤 값을 rvalue로 바꾸는 것임.
C++의 lvalue와 rvalue
c++에는 value category가 있다. lvalue, rvalue, xvalue, prvalue.
다 알 필요는 없다. 어떤 문장이 끝나서, 걔가 살아있으면 lvalue, 걔가 사라졌으면 rvalue.
예를 들어, 어떤 클래스의 생성자를 그냥 호출했다고 치자. A(); 이런 식으로.
그럼 걔는 끝나고 죽으니까 rvalue.
또, x++와 ++x를 비교하자.
x++ : rvalue
++x : lvalue
둘의 동작을 생각해보자. 그럼 해결된다.
한편 Rust에선 GCD, lower_bound 이런게 없어서 일일이 다 구현해야 한다.
그리고, 몇 안되는 이 라이브러리들도 C++은 std안에 다 있지만, Rust는 core, alloc, std와 같이 계층이 서로나뉘어짐.
16.2 Doc은 그냥 읽어보면 됨.
16.3 Option, 16.4 Result는 모두 앞에 설명했던 내용임.
16.5 String
✔ String : 힙에 만들어지는 문자를 조작할 수 있는 Type.
String에서 len은 실제 차지한 공간, capacity는 메모리에 확보해둔 공간. Vector와 같은 원리이다.
16.6 Vec
retain은 조건에 만족하는 애들만 남기기
dedup은 겹치는 애들을 제거하기(delete duplicate)
'RUST 스터디' 카테고리의 다른 글
RUST 스터디[RUST vs C++] 13. Methods and Traits (1) | 2024.05.15 |
---|---|
RUST 스터디[RUST vs C++] 12. Pattern Matching (0) | 2024.05.13 |
RUST 스터디[RUST vs C++] 10. User-Defined Types (0) | 2024.05.13 |
[RUST vs C++] 17. Standard Library Traits (0) | 2024.05.13 |
[RUST vs C++] 15. Generic과 Template (0) | 2024.05.12 |