교체 기 실효

4241 단어
Vector
1. 내부 데이터 구조: 연속 저장, 예 를 들 어 배열.
2. 모든 요 소 를 무 작위 로 방문 하 는데 필요 한 시간 은 상수 입 니 다.
3. 마지막 에 요 소 를 증가 하거나 삭제 하 는 데 소요 되 는 시간 은 요소 의 수량 과 상 관 없 이 중간 또는 시작 에 요 소 를 증가 하거나 삭제 하 는 데 소요 되 는 시간 은 요소 의 수량 에 따라 선형 변 화 를 나타 낸다.
4. 요 소 를 동적 으로 증가 하거나 줄 일 수 있 습 니 다. 메모리 관 리 는 자동 으로 완성 되 지만 프로그래머 는 reserve () 구성원 함수 로 메모 리 를 관리 할 수 있 습 니 다.
5. 교체 기 실효
삽입: vector 의 교체 기 는 메모리 재 할당 시 효력 을 잃 습 니 다.capacity () - size () 개 요 소 를 vector 에 삽입 하면 메모리 가 재배 치 되 고 모든 교체 기 가 효력 을 잃 습 니 다.
삭제: 삭제 작업 (erase, pop back) 을 진행 하면 삭제 점 과 그 후의 요 소 를 가리 키 는 교체 기 가 모두 효력 을 잃 습 니 다.
권장: vector 를 사용 할 때 reserve () 구성원 함수 로 필요 한 메모리 공간 을 미리 할당 합 니 다. 교체 기 를 보호 하여 실효 되 지 않 을 뿐만 아니 라 운행 효율 도 높 일 수 있 습 니 다.
deque
1. 내부 데이터 구조: 연속 저장 또는 세그먼트 연속 저장, 구체 적 으로 실현 에 의존, 예 를 들 어 배열.
2. 모든 요 소 를 무 작위 로 방문 하 는데 필요 한 시간 은 상수 입 니 다.
3. 시작 과 끝 에 요 소 를 증가 하 는 데 소요 되 는 시간 은 요소 의 수량 과 상 관 없 이 중간 에 요 소 를 증가 하거나 삭제 하 는 데 소요 되 는 시간 은 요소 의 수량 에 따라 선형 변 화 를 나타 낸다.
4. 요 소 를 동적 으로 증가 하거나 감소 할 수 있 습 니 다. 메모리 관 리 는 자동 으로 완성 되 고 메모리 관리 에 사용 할 구성원 함 수 를 제공 하지 않 습 니 다.
5. 교체 기 실효
삽입: 모든 요 소 를 추가 하면 deque 의 교체 기 를 무효 화 합 니 다.
삭제: deque 의 중간 에 요 소 를 삭제 하면 교체 기 가 효력 을 잃 습 니 다.deque 의 머리 나 끝 에서 요 소 를 삭제 할 때 이 요 소 를 가리 키 는 교체 기 만 실 효 됩 니 다.
list
1. 내부 데이터 구조: 양 방향 링 링크.
2. 요 소 를 무 작위 로 접근 할 수 없습니다.
3. 양 방향 으로 옮 겨 다 닐 수 있 습 니 다.
4. 시작, 끝, 중간 어느 곳 에서 든 요 소 를 추가 하거나 삭제 하 는 데 소요 되 는 시간 은 상수 입 니 다.
5. 동적 으로 요 소 를 증가 하거나 감소 할 수 있 으 며 메모리 관리 가 자동 으로 완 료 됩 니 다.
6. 교체 기 실효
삽입: 어떤 요 소 를 추가 해도 교체 기 를 무효 로 하지 않 습 니 다.
삭제: 요 소 를 삭제 할 때 현재 삭 제 된 요 소 를 가리 키 는 교체 기 를 제외 하고 다른 교체 기 는 효력 을 잃 지 않 습 니 다.
slist
1. 내부 데이터 구조: 단 방향 링크.
2. 양 방향 으로 옮 겨 다 닐 수 없고 예전 부터 뒤로 만 옮 겨 다 닐 수 있 습 니 다.
3. 다른 특성 은 list 와 비슷 합 니 다.
권장: slist 의 insert, erase, previous 등 을 사용 하지 마 십시오.이 조작 들 은 앞으로 옮 겨 다 녀 야 하기 때문에,     그러나 slist 는 직접 앞으로 옮 겨 다 닐 수 없 기 때문에 처음부터 뒤로 검색 합 니 다. 필요 한 시간 과 현재 원 에 있 습 니 다.      원소 의 개 수 는 정비례 한다.slist 는 insert 를 전문 적 으로 제공 합 니 다.after,erase_after 등 함수 최적화.         하지만 항상 앞으로 옮 겨 다 녀 야 한다 면 list 를 선택 하 는 것 을 권장 합 니 다.
Stack
1. 어댑터, 임의의 종류의 시퀀스 용 기 를 스 택 으로 변환 할 수 있 습 니 다. 일반적으로 deque 를 지원 하 는 시퀀스 용기 로 사용 합 니 다.
2. 원 소 는 후진 선 출 (LIFO) 만 가능 합 니 다.
3. stack 전 체 를 옮 겨 다 닐 수 없습니다.
4. 어댑터, 임의의 종류의 시퀀스 용 기 를 하나의 대기 열 로 변환 할 수 있 습 니 다. 일반적으로 deque 를 지원 하 는 시퀀스 용기 로 사용 합 니 다.
5. 원 소 는 먼저 나 갈 수 밖 에 없다 (FIFO).
6. 전체 queue 를 옮 겨 다 닐 수 없습니다.
7. 어댑터 는 임의의 종류의 시퀀스 용 기 를 우선 순위 대기 열 로 변환 할 수 있 으 며, 일반적으로 vector 를 바 텀 저장 방식 으로 사용 합 니 다.
8 、 첫 번 째 요소 에 만 접근 할 수 있 으 며, priority 전 체 를 옮 겨 다 닐 수 없습니다queue。
9. 첫 번 째 요 소 는 항상 우선 순위 가 가장 높 은 요소 입 니 다.
queue
priority_queue
제안: stack, queue, 또는 priority 가 필요 할 때quue 라 는 데이터 구 조 는 해당 하 는 용기 류 를 직접 사용 합 니 다.     deque 를 사용 하여 비슷 한 일 을 하지 마 세 요.
Set
1. 키 와 값 이 같 습 니 다.
2. 키 가 유일 합 니 다.
3. 요 소 는 기본적으로 오름차 순 으로 배열 합 니 다.
4. 교체 기 실효
삭제: 교체 기 가 가리 키 는 요소 가 삭제 되면 이 교체 기 는 효력 을 잃 습 니 다.
map
1. 키 가 유일 합 니 다.
2. 요소 기본 버튼 의 오름차 순 배열.
3. 교체 기 실효
삭제: 교체 기 가 가리 키 는 요소 가 삭제 되면 이 교체 기 는 효력 을 잃 습 니 다.
hash 와 set, multiset, map, multimap 의 결합
       이 안에 있 는 요 소 는 반드시 버튼 값 으로 정렬 되 는 것 이 아니 라 사용 하 는 hash 함수 에 따라 분 파 됩 니 다. 더 빠 른 검색 속 도 를 제공 할 수 있 습 니 다 (현재 hash 함수 와 관련 이 있 습 니 다).
제안: 검색 보다 요소 의 질서 가 더 중요 할 때 set, multiset, map 또는 multimap 를 사용 해 야 합 니 다.그렇지 않 으 면   hash_set,hash_multiset,hash_map 또는 hashmultimap
권장: 용기 에 원 소 를 삽입 할 때, 만약 원소 가 용기 에 있 는 순서 가 중요 하지 않다 면, 가능 한 한 맨 뒤에 넣 으 십시오.항상         시퀀스 용기 의 시작 이나 중간 에 요 소 를 추가 하거나 삭제 해 야 할 때 list 를 선택해 야 합 니 다.
권장: 관련 용기 의 경우 C 스타일 의 문자열 (즉 문자 포인터 char *) 을 키 값 으로 사용 하지 마 십시오.사용 하지 않 으 면 문자열 비교 연산 자 를 표시 해 야 합 니 다. 즉, operator <, operator = =, operator < =     기다리다
권장: 용기 가 매개 변수 로 전 달 될 때 인용 전달 방식 을 사용 하 십시오.그렇지 않 으 면 용기 의 복사 구조 함 수 를 호출 할 것 이 며, 비용 은 상상 하기 어렵다.
      STL 구성 은 플랫폼 과 관 계 없 이 애플 리 케 이 션 과 관 계 없 이 데이터 형식 과 무관 하 다.
코드 는 다음 과 같 습 니 다:
[cpp] view plaincopy
vector<int> vec;  
vector<int>::iterator iter = vec.begin();  
 
int main(void)  
{  
    while(iter != vec.end())  
    {  
        iter = vec.erase(iter);    //vector        ,        。  
    }  
    return 0;  
}  

좋은 웹페이지 즐겨찾기