본문 바로가기
반응형

C++6

Segmentation Fault 세그멘테이션 오류 (Core dump) Segmentaiton Fault 세그멘테이션 오류 흔히 포인터 관련 오류로 쉽게 접하고 사실은 메모리 관련 오류이다. 흔히 리눅스, 유닉스 계열에서 프로그래밍을 하다 보면 (Segmentaion Fault) 세그멘테이션 오류(Core dumped)라는 오류를 종종 보았을 것이다. 이는 메모리 보호 기법에 의해 발생한 오류로 허가되지 않은 메모리의 접근을 방지하기 위해서이다. MS의 윈도우에서는 예외처리를 하여 다양한 오류 상황에 대처하도록 설계되어있다. 그러나 UNIX 계열에는 단지 허가되지 않은 메모리의 접근을 에러 처리할 뿐이다. 그래서 오류를 찾기도 조금 더 어렵고 어디서 발생했는지 모르는 경우도 발생한다. 메모리 관리가 프로그래머에게 주어진 C/C++에서 발생한다. core dump는 메모리가 .. 2021. 7. 5.
C++ STL map 컨테이너 map map 컨테이너는 key와 value를 쌍으로 갖는 연관 컨테이너이다. 연관 컨테이너 중 활용도가 높아 많이 쓰인다. 파이썬의 딕셔너리와 유사하다. key는 중복이 될 수 없으며 value는 가능하다. key 중복을 허용하려면 multimap 컨테이너를 사용해야 한다. map의 원소는 pair 객체로 저장된다. 생성자 map m: 빈 m 생성 map m : p 조건자로 정렬한 빈 m생성 멤버 함수 size() : 컨테이너의 원소 개수 count(x) : 원소 x의 개수 반환 begin() : 처음을 가리키는 반복자 반환 rbegin() : 처음을 가리키는 역순차열의 반복자 반환 end() : 마지막을 가리키는 반복자 반환 rend() : 마지막을 가리키는 역순차열의 반복자 반환 clear() : .. 2021. 6. 9.
C++ STL Set 컨테이너,멤버 함수 사용 SET 컨테이너 집합의 의미로 쓰이는 set은 중복 요소가 없으며 균형 이진트리로 구현된 연관형 컨테이너이다. 원소들의 집합으로 되어 있다. Set도 매우 유용하지만 set보다는 보통 multi set을 사용할 때가 더 많았다. set은 절대 중복 원소가 없어야 할 경우에만 사용한다. 생성자 set s : 빈 set 생성 set s : p 조건자로 정렬한 빈 s생성 멤버 함수 size() : s의 원소 개수 count(x) : 원소 x의 개수 반환 begin() : 처음을 가리키는 반복자 반환 rbegin() : 처음을 가리키는 역순차열의 반복자 반환 end() : 마지막을 가리키는 반복자 반환 rend() : 마지막을 가리키는 역순차열의 반복자 반환 clear() : 모은 요소 제거 empty() : .. 2021. 6. 5.
C++ STL List 컨테이너 List 컨테이너 list 컨테이너는 노드 기반 컨테이너로 데이터가 노드 단위로 저장되고 이중 연결 리스트로 구현되어있다. Vector와는 노드단위로 저장되는 점에서 차이가 있다. 생성자 list list : 빈 list 생성 복사 생성자를 제공한다. 멤버 함수 assign(n, x) : x값으로 n개의 원소를 할당 front() : 첫 번째 원소 참조 back() : 마지막 원소 참조 begin() : 첫 원소를 가리키는 반복자 반환 rbegin() : 첫 원소를 가리키는 연 순차 열의 반복자 반환 end() : 마지막 원소를 가리키는 반복자 반환 rend() : 마지막 원소를 가리키는 역순 차열의 반복자 반환 clear() : 모든 원소 제거 empty() : 비었는지 검사 erase(x) : x가 .. 2021. 6. 1.
C++ STL Deque 컨테이너 Deque deque는 vector 컨테이너와 아주 유사한 컨테이너로 순차 컨테이너(sequence container)이다. Vector와 크게 다르지 않으며 다른 점은 메모리 블록 할당 정책이다. Vector는 원소가 추가될 때마다 메모리를 재할당하고 복사 과정이 일어나는데 deque는 새로운 메모리를 할당하여 원소를 추가한다. 생성자 deque dq : 빈 deque를 생성 deque dq(n) : n만큼의 크기의 deque 생성 deque dq(n, x) : x로 채워진 n만큼의 크기를 생성 멤버 함수 assign(n, x) : x값으로 n개 할당 at(i) : i번째 원소를 참조 front() : 첫 번째 원소 참조 back() : 마지막 원소 참조 begin() : 처음을 가리키는 반복자 end.. 2021. 5. 27.
C++ STL Vector 컨테이너 개요 vector는 순차 컨테이너 (Sequence container)로 배열처럼 사용할 수 있다. 일반 배열보다 많은 기능을 제공하며 배열을 기반으로 만들어진 컨테이너이다. Vector 컨테이너 생성자 vector ve vector ve(n) : 빈 벡터 또는 n만큼 빈 벡터를 생성한다. vector ve(n, x) : x로 초기화된 n만큼의 벡터 ve를 생성한다. 복사 생성자도 존재한다. 멤버 함수 ve.assign(n, a) : ve값에 a 값으로 n개만큼 할당한다. ve.at(i) : ve의 i 번째를 참조한다. ve.front( ) : ve의 맨 첫 원소를 참조한다. ve.back( ) : ve의 맨 마지막 원소를 참조한다. ve.begin( ) : ve의 첫 원소로 하는 반복자 ve.rbegi.. 2021. 5. 24.
반응형