C++

    1. vector 컨테이너

    1. vector 컨테이너

    vector 컨테이너는 대표적인 시퀀스 컨테이너로 배열과 비슷하여 사용이 쉬우므로 자주 사용된다 vector의 주요 인터페이스와 특징 vector의 주요 기능 vector는 시퀀스 컨테이너이므로 원소의 저장 위치(순서)가 정해지며 배열 기반 컨테이너이므로 원소가 하나의 메모리 블록에 할당된다 시퀀스 컨테이너는 차례차례 원소를 추가하고 제거하는 push_back()과 pop_back()을 가지며, 첫 원소와 마지막 원소를 참조하는 front()와 back()을 가진다. 또한, 지정한 위치에 원소를 삽입할 수 있는 insert()를 가진다. vector는 앞쪽이 막혀 있는 형태로 앞쪽에는 원소를 추가/제거할 수 없으며 뒤쪽에만 추가/제거 할 수 있다. 다른 시퀀스 컨테이너 (list, deque)는 앞쪽에 ..

    4. C++ 표준 템플릿 라이브러리(STL)와 활용

    4. C++ 표준 템플릿 라이브러리(STL)와 활용

    C++는 소프트웨어 개발자에게 유용한 많은 함수와 클래스를 표준 라이브러리로 제공 C++에서 제공하는 표준 템플릿 라이브러리 (STL)의 개요와 활용 표준 템플릿 라이브러리 개요 표준 템플릿 라이브러리(Standard Template Library, STL) : 템플릿으로 작성된 많은 제네릭 클래스와 함수 라이브러리 STL에 포함된 제네릭 클래스와 함수들은 3종류로 분류 컨테이너(container) - 템프릿 클래스 데이터를 저장하고 검색하기 위해 담아두는 자료 구조를 구현한 클래스 ex) 리스트, 큐, 스택, 맵, 셋, 벡터 등 iterator - 컨테이너 원소에 대한 포인터 반복자, 컨테이너의 원소들을 하나씩 순회 접근하기 위해 만들어진 포인터 알고리즘 - 템플릿 함수 컨테이너의 원소에 대한 복사, ..

    3. 객체 생성과 객체 활용

    3. 객체 생성과 객체 활용

    객체의 생성과 객체 이름 객체는 클래스 모양과 기능을 그대로 간직한 실체로서 이름을 가진다 기본 타입의 변수를 선언하는 것과 같은 방법으로 객체를 생성하고 이름을 붙인다. int money;// int 타입의 변수 money 생성 Circle donut;// Circle 클래스의 객체 생성, 객체 이름은 donut Circle pizza;// Circle 클래스의 객체 생성, 객체 이름은 pizza 변수가 생성되면 메모리에 변수 공간이 할당되는 것처럼, 객체가 생성되면 클래스 크기의 메모리가 할당된다. 객체의 멤버 접근 객체이름.멤버 => 객체의 멤버에 접근하기 위해서는 객체 이름 뒤에 .(점)을 찍고 그 뒤에 멤버를 쓴다 donut.radius = 1;//donut 객체의 radius 멤버에 1 기록 ..

    2. C++ 클래스 만들기

    2. C++ 클래스 만들기

    클래스 만들기 C++에서는 class 키워드를 이용하여 클래스를 선언 C++ 클래스는 C 언어의 구조체(struct)와 같이 개발자가 정이하는 새로운 데이터 타입 Circle은 반지름 값을 가지는 radius 멤버 변수와 외부에 원의 면적 값을 제공하는 getArea() 멤버함수를 가지고 있음 클래스는 클래스 선언부(class declaration)와 클래스 구현부(class implementation)으로 나뉘어 작성됨 클래스 선언부 : class 키워드로 클래스의 모양을 선언 클래스 구현부 : 클래스의 멤버 함수들을 구현 클래스 선언부 - 클래스 : class 키워드와 이름으로 선언 class Circle // Circle 이름의 클래스 선언 { .... };// 반드시 세미콜론(;)으로 종료 - 클..

    1. 객체에 대한 이해

    1. 객체에 대한 이해

    세상 모든 것이 객체다 그림과 같이 우리 주변에 있는 모든 것이 객체다. 즉, 실세계는 객체들의 집합이다 객체 (odject) 주체 (subject) 객체는 캡슐화된다 캡슐화 (encapsulation) : 객체의 구성 요소들을 캡슐로 싸서 보호하고 볼 수 없게 하는 것으로, 객체의 가장 본질적인 특징 ex) 캡슐에 든 약은 어떤 색인지 어떤 성분인지 알 수 없다 객체의 일부 요소는 공개된다 객체들이 서로 정보를 교환하고 통신하기 위해 일부 요소의 공개 노출이 필요하다 ex) TV의 on/off 버튼, 음량 조절 버튼 등은 사용자나 다른 기계와 통신하기 위해 노출되어 있음 C++ 객체는 멤버 함수와 멤버 변수로 구성된다 객체는 자신만의 고유한 상태(state)와 행동(behavior)으로 구성 ex) T..

    5. #include <iostream>에 숨은 진실

    5. #include <iostream>에 숨은 진실

    Reference : 명품 C++ 프로그래밍 / 황기태 / 생능출판사 #include 와 전처리기 C/C++ 컴파일러는 컴파일 전에 우선 전처리기 (preprocessor)를 실행시켜 #include문을 모두 처리한다 헤더 파일의 확장 전처리기가 #include 문에 지정된 의 텍스트를 #include 문이 있던 그 자리에 삽입하는 것 내에 또 다른 include 하는 문이 내포되어 있으면, 다시 그 자리에 '헤더 파일의 확장'이 일어나고, 모든 '헤더 파일의 확장'이 완료되면 전처리기는 종료 파일은 파일을 include 파일은 파일을 include 파일은 파일을 include 하므로 include 한 모든 헤더 파일이 모두 SimpleC++.cpp 소스 파일 내에 확장되어 들어오게 된다. 헤더 파일은 ..

    4. 키보드로 문자열 입력

    4. 키보드로 문자열 입력

    C++의 문자열 첫 번째 방법 : C-스트링 cin을 이용한 문자열 입력 cin과 >> 연산자로 문자열을 입력 받을 때의 허점 cin.getline()을 이용하여 공백이 포함된 문자열 입력 두 번째 방법 : string 클래스

    3. 키 입력 받기

    3. 키 입력 받기

    Reference : 명품 C++ 프로그래밍 / 황기태 / 생능출판사 cin과 >>연산자를 이용한 키 입력 C++ 에서는 표준 입력 스트림 cin과 >> 연산자를 이용하여 사용자로부터 키를 입력 받는다 cin과 >> 연산자는 헤더 파일에 선언되어 있다 cin은 여러 개의 >> 연산자를 이용하여 여러 값을 입력받을 수도 있다. >> 연산자들은 왼쪽부터 오른쪽으로 순서대로 키보드로부터 입력받는다 cin >> width >> height; cout 연산자는 본래 정수를 시프트하는 C++ 기본 연산자이지만, 헤더 파일에 스트림 추출 연산자로 재정의(operator overloading)되어 있다 키를 칠 때 변수에 키 값 전달 키 C++ 입력 시스템은 사용자의 키 입력이 끝났다는 사실을 키를 통해 인식한다 ci..