반응형

프로그래밍 41

[c++ STL] Queue 기본 사용법 및 예제

queue는 뒤에 일렬로 데이터를 저장하는 방식의 자료구조 입니다. 맨앞의 데이터를 출력하며 삭제도 맨앞의 데이터를 삭제하게됩니다. 그래서 제일 처음 저장한 데이터가 출력이 되며 삭제도 제일 처음 저장한 데이터가 삭제됩니다. 선언방법을 알아봅시다. #include 먼저 전처리기에 include를 해야합니다. int형의 자료를 저장하는 int_queue라는 이름의 queue를 만든다고 한다면 queue int_queue; 이런식으로 선언을 하면 됩니다. 사용방법을 알아 봅시다. 한쪽으로만 접근이 가능하기 때문에 push로만 데이터를 저장합니다. int_queue.push(넣을 자료); 이런식으로 사용 하시면 됩니다. 지우는방법도 마찬가지로 pop으로만 삭제가 가능합니다. int_queue.pop(넣을 자료..

[c++ STL] Deque 기본 사용법 및 예제

deque는 양쪽에서 접근이 가능한 큐입니다. 선언방법을 알아봅시다. #include 먼저 전처리기에 include를 해야합니다. deque int_deque; 이후에 이런식으로 선언이됩니다. 사용방법을 알아 봅시다. 양쪽으로 접근이 가능하기 때문에 push_front와 push_back이 가능합니다. int_deque.push_front(넣을 자료); 이런식으로 사용 하시면 됩니다. 지우는방법도 마찬가지로 pop_front와 pop_back이 있습니다. pop_front는 맨앞의 자료를 지우고 pop_back은 반대로 맨뒤의 자료를 지웁니다. 안의 모든 데이터를 지우는 방법도 있습니다. clear를 사용하면 안의 모든 데이터를 지울 수 있습니다. int_deque.clear(); 이런식으로 사용하시면 ..

[c++ STL] vector 의 반복자 사용법

vector의 반복자 사용법을 알아보도록 하겠습니다. 반복자는 벡터의 시작부터 끝까지 순회를 하는 일반화된 방법을 제공해줍니다. 일단 선언부터 알아보겠습니다. vector vec; vector::iterator iter; 위에는 반복을 시킬 벡터를 선언했고요 아래는 반복자를 선언한 것 입니다. 반복자는 반복을 시킬 벡터와 같은 자료형을 가져야 합니다. 간단하게 순회 방법을 알아보도록 하겠습니다. for(iter = vec.begin(); iter != vec.end(); iter++) 다음과 같이 for을 사용하여 주로 순회를 진행합니다. 이제 역방향 반복자를 알아보도록 하겠습니다. 역방향 반복자의 선언 방법입니다. vector::reverse_iterator riter; 역방향 반복자의 순회 방법입니다..

[c++ STL] Vector 기본 사용법 및 예제

c++로 알고리즘 문제를 풀다보면 어쩔 수 없이 만나는 STL 그 중에서 가장 기본이 되는 시퀀스 컨테이너에서 또 기본이 되는 vector를 사용하는 방법을 알아보도록 하겠습니다. 기본적으로 선언을 하는 방법을 알아 봅시다. #include 전처리기에 벡터를 사용한다고 알려주시고! vector 벡터이름 이런 형식으로 사용해 주시면 되겠습니다! int형의 자료를 저장하는 int_vector라는 vector를 선언하는 것을 예로 들면 vector int_vector; 이렇게 선언해주시면 됩니다. 선언 방법을 알았으니 사용법을 알아 봅시다. vector int_vector; 이런 식으로 선언을 해주었으면 이 벡터에 자료를 넣을 준비 된 것입니다. int 형이니까 정수를 넣을 수 있겟죠! 간단하게 1,2,3을 ..

[c++] 템플릿(template) 함수 및 클래스

템플릿함수란 똑같은 내용의 함수을 자료형에따라 오버로딩할 필요 없이 한번에 뭉쳐서 정의하는 함수이다.일반적으로 자료형을 뭉쳐놓은것을 템플릿이라고 이해하면 쉽게 이해가 될 것 같다.함수에서 사용하면 템플릿 함수가 되는것이고, 클래스에서 사용하면 템플릿 클래스가 된다.먼저 템플릿 함수에 대해서 알아보자. 1234567891011121314151617181920212223template void print(T data) //템플릿 함수 정의{ cout

프로그래밍/c++ 2018.12.20

[c++] virtual(가상함수,순수가상함수)

c++에서는 virtual 키워드를 통하여 가상함수와 순수가상함수를 정의할수 있다.먼저 가상함수와 일반함수의 차이점을 알아보자.일반함수는 상속된 자식class에서 오버라이드를 통한 재정의가 불가능하지만가상함수는 상속된 자식class에서 오버라이드를 통한 재정의가 가능하다. 1234567891011121314151617181920212223242526272829303132333435class Animal {//부모class public: void howl() { cout

프로그래밍/c++ 2018.12.19

[c++] class의 상속 (부모class 및 자식class)

상속이란 하나의 class의 내용을 다른 class에서 사용할 수 있게 하는것이다.사용되어지는 주체를 부모 class라고 하며, 사용을 하는 클래스를 자식 class라고 한다.1234567891011121314151617181920class p_class {// 부모classpublic: int p_int; p_class() { this->p_int = 1; }}; class c_class : public p_class {//자식class에 부모class int get_p_int() { return p_int; }}; int main(){ c_class c; std::cout

프로그래밍/c++ 2018.12.19

[c++] class의 생성자 및 소멸자

생성자란? 객체 선언시 실행되는 매소드이다.생성자를 통하여 맴버 변수의 값을 초기화 할 수 있으며 다양한 방법으로 활용이 가능하다.생성자는 오버로딩을 통하여 여러개 정의 할 수 있으며 객체선언시 파라미터를 통하여 해당 생성자를 호출한다. 1234567891011121314class test_class{public: int value; test_class()//생성자 정의 { this->value = 1; }}; int test_fnc()// 테스트 함수 { test_class test; //test_class 객체 선언 생성자 호출 return test.value; //생성자에서 value값을 1로 초기화 하였기 때문에 1이 리턴이 된다.} Colored by Color Scriptercs 반대로 소멸자..

프로그래밍/c++ 2018.12.19

[c++] class 정의 및 접근제한자

c에서 c++로 넘어오면서 새로 생긴 개념중의 하나가 class 이며 c++의 꽃이라고 불리운다.class란 객체 지향 프로그래밍에서 class란 같은 종류의 속성고 행위를 정의한것으로 사용자 정의 데이터 형이라고 할 수 있다. 선언방법을 알아보자123class test_class{ int value;};cs간단한 class를 하나 정의하였다.class 이름은 test_class이며 맴벼 변수로 int형인 value를 하나 가지고 있다. class에는 접근제한자라는 개념이 있는데 c++에서는 default가 private이다.접근제한자는 3가지 종류가 있다. 1. private - default 접근 제한자이며 class내부에서만 접근이 가능하다.2. public - 어디에서나 접근이 가능하다.3. pr..

프로그래밍/c++ 2018.12.19

[c++] 객체지향 프로그래밍에서의 캡슐화란?

캡슐화란 c++에서는 class 내부의 맴버 변수에 직접접근하는 방식이 아니라 간접적으로 맴버함수(매서드)를 사용하여 접근하는 형식을 말한다.왜 직접 접근하지 않고 굳이 간접접근을 해야 하는걸까? 직접 접근하는 방식은 다른 객체에 의해 값이 변경될 수 도 있고 보안상 좋지 못한 방법이기 때문에 캡슐화의 정보은닉은 오류발생도 줄여주고 보안성을 향상시켜 준다. 요약하자면1. 캡슐화는 데이터와 데이터를 처리하는 함수의 묶음이다.2. 객체의 데이터를 직접 수정할수 없고 지정된 메서드를 통해서만 수정이 가능하다.(게터,세터)3. 정보은닉으로 오류발생도 감소 및 보안성 향상이 된다. 1234567891011class test_class{private: int value;public: void set_value(in..

프로그래밍/c++ 2018.12.19
반응형