반응형 Programming/C C++11 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. [c/c++] 구조체, 공용체 struct, union 구조체 Struct 구조체는 여러 개의 변수 및 자료형을 묶어 정의하는 새로운 자료형이다. 자주 쓰면서 연관되는 자료형을 묶으려고 할 때 구조체를 사용하면 매우 유용하다 마치 우리가 사용하던 char, int 형을 쓰듯이 비슷한 것이다. 배열 역시 사용 가능하다. struct person{ char name[30]; char birthday[8]; int age; } 위의 예제와 같이 구조체 정의는 위와 같고 구조체 선언은 다음과 같다. struct [구조체 이름] [구조체 변수 이름]; struct person p1; 그런데 이대로면 구조체에 있는 멤버를 접근할 방법이 없다. 구조체 멤버에 접근하기 위해서 '.' 연산자를 사용한다. person.name; 구조체 포인터 구조체 포인터는 조금 다른 것이 .. 2021. 5. 2. C++ 오버로딩과 연산자 오버로딩 오버로딩 C에서 C++ 넘어오면서 생긴 기능중 하나이다. 함수를 같은 이름응로 비슷한 기능임에도 불구하고 C언어에서는 이름을 다르게 해야한다. C언어에서는 동일한 이름의 함수가 정의되어 있으면 컴파일러가 오류를 발생시킨다. //error_overload.c #include void func(int n); void func(int n,int e); int main() { func(1); func(2,3); return 0; } void func(int n){ printf("%d\n",n); } void func(int n,int e){ printf("%d %d\n",n,e); } 위 사진처럼 C언어는 에러를 발생시킨다. C++은 함수 호출 시 전달되는 인자를 통해서 함수를 구분하기 때문에 인수 형태가 다르.. 2021. 3. 20. 이전 1 2 다음 반응형