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 | 29 | 30 | 31 |
Tags
- 스프링 핵심 원리 - 기본편
- 백준 20055 컨베이어 벨트 위의 로봇
- 고급매핑
- 20055 컨베이어 벨트 위의 로봇
- 스프링 핵심 원리
- 기능개발 python
- 코틀린
- 컨베이어 벨트 위의 로봇 Python
- 백준 13460 Python
- 7장 고급매핑
- Kotlin in action 5장
- 객체 지향 설계와 스프링
- 스프링 컨테이너와 스프링 빈
- Kotlin in action 3장
- 싱글톤 컨테이너
- Kotlin
- 코틀린인액션
- Kotlin in action 10장
- 자바 ORM 표준 JPA 프로그래밍 7장
- Kotlin in action 6장
- KotlinInAction
- Kotlin In Action
- kotlin in action 정리
- 백준
- spring
- 13460 구슬탈출 2
- 코틸린인액션
- 20055
- 스프링 핵심 원리 이해
- Python
Archives
- Today
- Total
기록하는 습관
[C++] vector & deque 본문
Vector
vector.size() 는 실제 벡터에 들어있는 item의 수를 나타낸다.
반면, vector.capacity()는 벡터에 할당된 메모리 크기를 나타낸다.
따라서 size != capacity
capacity grows exponentially.
ex)
vector<int> v = {1,2,3,4};
// v.size() == v.capacity() == 4
v.push_back(5);
// v.size() == 5;
// v.capacity() == 8
여기서 v.capacity() == 8 인 이유는?
4 다음엔 8로 메모리 공간이 할당되기 때문이다.
이번엔 다음 예를 살펴보자.
// EX1
vector<int> v(5); // 선언과 동시에 초기화
// v.size() == 5, v.capacity() == 5
// EX2
vector<int> v2; // 선언
v2.resize(5); // 초기화
// v2.size() == 5, v2.capacity() == 5
// EX3
vector<int> v3;
v3.reserve(5);
// v3.size() == 0, v3.capacity() == 5
EX3를 살펴보면,
reserve() 함수를 통해 size()는 0이지만 capacity는 5임을 알 수 있다.
따라서, 최대 개수를 안다면 reserve(N)을 사용하면 좋다.
Deque
: 동적 배열, 임의의 위치에 있는 원소 접근과, 앞과 뒤에서 원소를 추가하는 연산은 O(1)을 보장
1. deque는 재할당이 없다. 즉, reserve()와 capacity()가 없다.
2. vector는 한방향인데, deque는 양방향성을 띈다.
'알고리즘 > [개념] C++' 카테고리의 다른 글
[c++] 여러개의 숫자 한줄로 받아 따로 저장하기 (0) | 2020.05.08 |
---|---|
[C++] memset (0) | 2020.01.21 |
[C++] Range-based for statement (0) | 2020.01.08 |
[C++] 순열과 조합 (0) | 2020.01.07 |
[C++] STL 정리 (0) | 2020.01.05 |
Comments