▶ iterator(반복자) 포인터와 상당히 비슷하며 컨테이너에 저장되어 있는 원소들을 참조할 때 사용함. 추상적으로 말하자면, 반복자란 컨테이너에 저장되어 있는 모든 원소들을 전체적으로 한번 훑어 나갈 때 사용하는 일종의 포인터 비슷한 객체임. 알고리즘마다 각기 다른 방식으로 컨테이너를 훑어가기 때문에 반복자에도 여러가지 종류가 있음. ▶ 반복자의 성질 컨테이너와 컨테이너 안의 요소를 구별 요소의 값 확인 컨테이너 안에 있는 요소들 간에 이동할 수 있는 연산 제공 컨테이너가 효과적으로 처리할 수 있는 방식으로 가용한 연산들을 한정 ▶ 반복자의 종류 입력 반복자(input iterator) 읽기만 가능, 순방향이동,현 위치의 원소를 한번만 읽을 수 있는 반복자 출력 반복자(output iterator) ..
학과 공부/C & C++
▶ fill 함수 구조 #include void fill(FowardIterator first, FowardIterator last, const T& val); ▷ fill 함수의 목적 fill함수는 어떤 연속성을 띈 자료구조(배열, 벡터 등등)의 시작점부터 연속된 범위를 어떤 값이나 객체로 모두 저장하고 싶을 때 사용함. ▷ 명령어들 알아보기 #include : fill 함수를 사용하기 위한 헤더파일. first : 채우고자 하는 자료구조의 시작위치 iterator last : 채우고자 하는 자료구조의 끝 위치 iterator, 단 last는 안채워짐 val : first부터 last 전까지 채우고자 하는 값. 반복자는 또 뭐야.....?? 하시는 분들을 위한 포스팅 https://learning-st..
이중포인터(double pointer) : 포인터를 가리키는 포인터 포인터 연산자 하나 당 화살표 하나(그림그려서 쉽게 할 수 있음. 같은 형끼리 비교, 대입연산) 주소에 의한 호출 : 값 변경 가능 값에 의한 호출 : 함수가 끝나면 메모리 삭제됨. 포인터배열(array of pointers)(많이 씀) 배열의 원소가 포인터인것. int *ap[10]; []연산자가 *연산자보다 우선순위가 높으므로 ap는 먼저 배열이되고 그 후 int 형 포인터가 된다. 배열 안에 int *변수가 들어간 것. 정수형 포인터 배열 int a=10, b=20, c= 30, d=40, e=50; int *api[5] = {&a,&b,&c,&d,&e}; 이런식으로 포인터배열 하나당 같은 형의 변수 하나를 가리킬 수 있음. 2차원..
저번시간에 이어서 오늘은 공용체(Union),열거형(enum),사용자 정의 자료형(typedef)에 대해서 알아 볼 것이다. 우선 union은 공용체라고도 불린다. 유니온은구조체와 비슷하지만 같은 메모리 영역을 여러개의 변수가 공유하고, 그 메모리의 크기는 공용체 멤버 중 가장 큰놈의 바이트로 결정된다. 또, 공용체와 구조체의 다른점은 구조체는 그 안 멤버들을 모두 쓴다면, 공용체는 그 안 멤버들 중 하나만 사용한다는 것이다. 따라서, 메모리 절약차원에서 뛰어나다는 장점이 있다. 말로는 읽기도 싫고 이해도 잘 안되니 그림으로 보자.구조체와 마찬가지로 공용체 형 선언을 먼저 해주고 그 공용체의 변수 선언은 또 따로 해줘야한다. 구조체와 마찬가지로 멤버 접근은 . 연산자로 해준다. 메인함수에서 보듯이 v.c..
이번 글에서는 구조체 배열, 구조체 포인터, ->연산자,구조체와 함수에 대해서 알아 볼 것이다. 1.구조체 배열 구조체 배열은 같은 구조체를 여러 개 모은것이다. 그냥 일반 배열이랑 다를게 없다. .연산자로 멤버들 접근하는 것만 빼면 그냥 배열과 똑같다. 예시를 보자면struct student list[100]; 처럼 구조체형 list 변수에다가 []로 크기를 표시해주면 된다. 배열과 마찬가지로 구조체 배열도 초기화를 해줄 수 있다.바로 이렇게! 2.구조체를 가리키는 포인터 구조체를 가리키는 포인터도 일반 변수에서의 포인터와 똑같다. 그냥 포인터가 그 구조체의 주소를 가리키고 있는 것이다. 이렇게 구조체 포인터 변수를 선언해주고 포인터 변수p에 구조체 변수s의 주소를 넣어주면 포인터변수 p는 s의 주소를..