stl

    [C++] STL 자료구조

    STL Standard Template Library STL은 다양한 자료형으로 사용할 수 있도록 만든 함수 템플릿이나 클래스 템플릿이 기초가 된다. 여기서는 STL에 있는 자료구조 클래스를 이용한다. 연결리스트(Linked List) 어떤 데이터 덩어리(이하 노드 Node)를 저장할 때 그 다음 순서의 자료가 있는 위치를 데이터에 포함시키는 방식으로 자료를 저장 #include 시간복잡도 삽입/삭제: O(1) 탐색: O(n) 데이터의 추가/삭제가 많은 경우에는 연결 리스트를 사용하면 좋다. 싱글 연결 리스트: next 포인터만 가짐 이중 연결 리스트: next 포인터와 prev 포인터를 가짐 원형 이중 연결 리스트: 이중 연결리스트와 동일한 형태이지만 마지막 노드의 next 포인터가 헤드 노드(맨 앞 ..

    [C++] String

    string 클래스는 C++ STL(표준라이브러리)에서 제공하는 클래스이다. 문자열을 다루는 방법은 2가지가 있다. 1. char array을 이용하는 방법 2. string str 방식 C에서는 1 방식만 이용할 수 있고, C++에서는 2 방식을 주로 이용한다. C++에 들어가면서 string을 하나의 변수 type으로 사용할 수 있게 된 것이다. char 방식에서는 개행문자 '\0'을 고려하여 배열의 크기를 1만큼 추가해야 했지만 string에는 개행문자가 들어가지 않는다. 또한 문자열은 동적 할당이 가능하다. 선언 및 생성 #include ; ▶ string 헤더를 불러온다. string str; ▶ string type의 str 변수를 생성 string str = "hello"; ▶ string ..

    [C++] Vector Container

    Vector란 C++ 표준라이브러리(STL)에 있는 컨테이너(Container)이다. Vector를 생성하면 메모리 heap에 배열이 동적으로 할당된다. 스택과 같은 느낌이라고 생각하면 된다. (삽입과 삭제가 여러번 반복된다면 vector보다는 list, deque 자료구조를 사용하는 것을 추천) Vector 사용법 1. Vector 헤더를 include. 2. Vector 선언. - vector 변수이름 - ex) vectornumbers; Vector 생성 방법 vector v; ▶ 빈 벡터 생성 vector v(4); ▶ 0으로 초기화 되어 있는 4 크기의 벡터 생성 vector v(4, 2); ▶ 2로 초기화 되어 있는 4 크기의 벡터 생성 vector v = {1, 2, 3}; ▶ int형 벡터..