전체 글131 C++ 기초 : iterator (1) vector 클래스 내부에도 iterator 클래스가 구현되어 있습니다. 아래 코드에서 23번째 줄을 보시면vector의 int 버전 클래스 내부에 있는iterator 클래스를 통해 객체 veciter를 만들었습니다. 그리고 veciter에 vecInt가 가리키는 가변 배열의주솟값을 대입했죠. veciter가 가리키는 공간에* 연산을 통해 100을 대입할 수 있습니다. vecInt가 가리키는 가변 배열의 주솟값이저장된 veciter에 바로 * 연산을 통해 100을 대입하면 가변 배열의 0번째 인덱스에100이 대입될 것입니다. 0번째 인덱스가 아닌1번째 인덱스에 100을 넣고 싶다면 ++veciter 코드를 추가한 후 대입하면 됩니다. veciter는 0번째 .. 2024. 4. 20. C++ 기초 : STL (vector와 list) 가변 배열을 직접 구현했었지만,사실 표준 라이브러리에서 제공하는 가변 배열이 있습니다. 밑에 코드를 보시면 2번째 줄에서 "vector"를 포함시켜서 사용할 수 있습니다. vector는 클래스 템플릿이기 때문에 어떤 자료형을 관리하는 클래스를 만들 것인지자료형을 명시해 줘야 합니다. 그리고 std라는 namespace에 존재하기 때문에범위 지정 연산자를 통해 std를 붙여줘야 하죠.계속 붙여야 하는 것이 번거롭다면 main 함수 밖에using std::vector; 코드를 추가하면 바로 사용할 수 있죠. 클래스 템플릿을 이용하여 vector라는 클래스를 만들고 이를 통해 객체 vecInt를 만들었습니다. 8 ~ 9번째 줄을 보면 데이터를 삽입하는 함수,pu.. 2024. 4. 20. C++ 기초 : namespace와 입출력 구현 (cout, cin) C에서는 printf를 통해 출력을 하였죠. C++에서는 cout이라는 키워드를 통해 출력을 할 수 있습니다. "iostream"이라는 파일을 포함시킨 후 사용할 수 있습니다. 마지막에 std::endl은 개행 문자 '\n'와 같은 역할을 합니다. 실행을 해 보니 숫자와 문자 모두 잘 출력되네요. 또한 C에서는 scanf_s를 통해 입력을 받았죠? C++에서는 cin을 통해 입력을 받을 수 있습니다. 마찬가지로 "iostream"이라는 파일을 포함시킨 후사용할 수 있습니다. 0으로 초기화된 변수 a에cin을 통해 100을 입력한 후 값을 확인해 보니 100이 대입된 것을 확인할 수 있네요. 그런데 cout, cin, end.. 2024. 4. 19. C++ 기초 : 클래스 템플릿을 이용한 리스트 구현 기존의 구조체로 만들었던 연결형 리스트를클래스 템플릿을 이용하여 구현하겠습니다. 먼저 cList.h 파일을 만들고 cList라는 클래스 템플릿과 tListNode라는 구조체 템플릿을 만들었습니다. C++에서는 사실 구조체와 클래스와의 차이가 없습니다. 작은 차이라면 구조체는 아무 키워드도 적지 않으면기본적으로 public으로 선언되고클래스는 아무 키워드도 적지 않으면 기본적으로private로 선언된다는 차이 정도죠. 그래서 구조체 템플릿으로 선언된 tListNode는 사실 클래스 템플릿으로 선언해도 문제가 없습니다. 일단 클래스 템플릿 cList부터 보시죠. 첫 번째 노드의 주솟값을 저장할 멤버 pHead와마지막 노드의 주솟값을 저장할 멤버 pTail이 있습니.. 2024. 4. 17. C++ 기초 : 클래스 템플릿 int형 데이터를 저장할 수 있는 가변 배열이 있습니다.그런데 float형 데이터를 저장하는 가변 배열을 만들고자 한다면클래스를 또 만들어야 하는 번거로움이 생깁니다. 또는 어떤 객체를 저장하는 가변 배열을 구성하고 싶을 수도 있죠. 결국 가변 배열 역할을 하는 클래스의 구성은비슷하기 때문에 일일히 복사하여 클래스를 또 만들어야 하고 다른 부분은 조금씩 수정하는 형태로 진행해야겠죠. 이러한 번거로움을 해소하기 위해서는클래스도 템플릿으로 구성하면 됩니다. 가변 배열 클래스의 헤더 파일인 cArr.h로 가서 cArr 클래스를템플릿으로 선언해 줍니다. 이후 main.cpp에서 cArr 클래스를 통해 객체를 만드려고 하면오류가 발생합니다. 이제 일반 클래스가 아.. 2024. 4. 17. C++ 기초 : 함수 템플릿 두 수를 받아 더한 후 반환하는 Add 함수가 있습니다. 현재 int형(정수) 두 개를 받아 반환하기 때문에Add 함수를 통해 실수 계산을 하려고 하면제대로 작동하지 않을 겁니다. 그래서 아래 코드처럼 Add 함수를 오버로딩하여 같은 이름으로 하되, 해당 함수의 매개변수의 타입을 달리 하여두 실수의 합을 계산할 수 있도록 해야 할 겁니다. 하지만 '함수 템플릿'이라는 기능을 사용하면이렇게 할 필요가 없습니다. 아래 코드에서 3번째 줄에 있는 것이 함수 템플릿입니다. typename 뒤에 T가 자료형을 대체하죠. 꼭 T가 아니더라도 s나 a 등 다른 문자로해도 상관없지만 일반적으로 T를 사용합니다. 함수 템플릿으로 구성한 Add.. 2024. 4. 17. 이전 1 ··· 10 11 12 13 14 15 16 ··· 22 다음