[C_C++]이론 공부/이론+STL

    [C++ STL] set 사용법 위주 공부

    set 은 노드 기반 컨테이너로, 이진 균형 트리다. 때문에 삽입, 삭제, 검색 등의 작업이 용이하다. 숫자든 문자든 원소의 중복을 알아서 없애준다는 이점이 있어 사용법을 익혀두면 좋다. 원소는 insert 멤버 함수로 삽입되면 자동으로 정렬(오름차순)된다. set 헤더( #include )에 들어있고, vector랑 겹치는 멤버함수들이 있어 vector 공부 후 보니 좀 더 편한 것 같다. Set 초기화 set 변수명 기본 선언 set 변수명(복사할 변수) 선언 후 복사한 값으로 초기화 set 변수명 = 복사할 변수 선언 후 복사한 값으로 초기화 set 변수명(복사할 변수.begin(), 복사할 변수.end()) 선언 후 복사한 값으로 초기화 Set 반복자(iterator) s.begin() / s.e..

    [C++ STL] vector(벡터) 공부

    [C++ STL] vector(벡터) 공부

    STL : 표준 템플릿 라이브러리; Standard Template Library 사용하려면 #include 가 필요하다. C++에서는 동적 배열 구조를 vector로 구현할 수 있다. vector vec, vector vec처럼 선언해주면 자동으로 배열의 크기 조절과 객체의 추가, 삭제가 가능하다. 단, 한번에 한 타입만 저장이 가능하다. 요소에 접근하거나, 앞 or 뒤에 요소를 추가/삭제하거나, 크기를 알 수 있는 멤버 함수 등을 제공한다. 다음은 vector를 이용해 문자열을 추가, 삭제해 각각 출력하는 코드다. #include #include #include // vector 헤더파일 추가 using namespace std; int main() { vector vec; // 비어있는 벡터 생성 ..

    [C++] 클래스(class) 기본

    클래스(Class) C++의 클래스는 C의 구조체에서 확장된 C++의 구조체와 기본(default) 접근제한자만 다른 것이라고 볼 수 있다. 접근제한자 접근 제한자는 3가지로 나뉘며, 멤버들의 접근 권한을 정한다. private: 같은 클래스(또는 friend) 안에서 접근 가능 클래스 내(클래스 내에 정의된 함수)에서만 접근 허용 protected: 같은 클래스 또는 상속된 자식 클래스(또는 friend) 안에서 접근 가능 - 상속관계에 놓여있을 때, 유도 클래스에서의 접근 허용 public: 어디서든 접근 가능 C++에서 클래스의 기본 접근 제한자는 private이다. C에서 구조체나 C++에서 구조체의 기본 접근 제한자가 public인 것과 다르다. 클래스는 쉽게 말하면 변수와 함수 등을 포함하는 ..

    OOP(객체지향 프로그래밍)의 주요특징

    객체지향 프로그래밍(Object-Oriented Programming; OOP)의 주요 특징으로는 캡슐화, 추상화, 상속, 다형성이 있다. 정보은닉을 추가하여 5가지라고 보는 경우도 있으니, 캡슐화와 정보은닉의 차이점에 유의하며 주요 특징들을 알아보자. 1. 캡슐화(Encapsulation) 변수와 함수를 캡슐처럼 하나의 단위로 묶는 것을 의미한다. 즉 데이터의 번들링(Bundling)이다. 이처럼 객체의 속성(data fields)과 행위(메서드)를 하나로 묶기도 하고, 실제 구현 내용 일부를 외부로부터 감춰 은닉한다는 특징이 있어 캡슐화라고 한다. 대개 프로그래밍 언어에서 이 번들링은 클래스를 통해 구현되고, 해당 클래스의 인스턴스(객체) 생성을 통해 클래스 안에 포함된 멤버 변수와 메소드에 쉽게 접..

    [C++] 데이터 타입(자료형)

    C++의 데이터 타입은 크게 아래와 같이 구분짓고 있다. bool형 문자형 정수형 부동소수(실수)형 다음은 C++ 32비트 및 64비트를 기준으로 한 자료형의 크기 및 범위다. 구분 데이터 타입 크기 (byte) 범위 bool형 bool 1 true or false 문자형 (signed) char 1 -128 ~ 127 unsigned char 1 0 ~ 255 wchar_t 2 0 ~ 65,535 정수형 (signed) short (int) 2 -32,768 ~ 32,767 unsigned short (int) 2 0 ~ 65,535 (signed) int 4 –2,147,483,648 ~ 2,147,483,647 unsigned int 4 0 ~ 4,294,967,295 (signed) long (i..

    [C++] 메모리 영역 (메모리 구조), 정적할당과 동적할당

    [C++] 메모리 영역 (메모리 구조), 정적할당과 동적할당

    프로그램의 동작 원리 사용자가 운영체제(OS)를 통해 프로그램 실행을 요청. 하드디스크(HDD)에 저장되어있던 프로그램을 작동시키기 위해 메모리의 코드 영역에 올림. CPU가 프로그램 코드를 읽어 메모리를 관리하고 명령문들을 실행. 프로그램 실행을 위해 동적메모리가 할당되면 Heap을 아래로 넓히며 FreeStore영역을 사용 시스템이 작동하기 위해 CPU가 임시적인 정보를 Stack에 저장해 위로 넓히며 FreeStore영역을 사용 ※ Heap 메모리와 Stack 메모리를 많이 사용하면 남은 FreeStore영역이 없어져 메모리가 부족한 상태가 됨. 이해를 위해 편의상 위와 아래로 넓힌다고 했지만, stack은 높은 주소→낮은 주소 순으로 공간을 채우고 heap은 낮은 주소→높은 주소 순으로 채우기 때..