본문 바로가기

프로그래밍 관련/C++7

Priority Queue(Heap) 우선순위 큐라는것이 있다. 배열.링크드리스트 같이 같은 타입의 변수 여러개를 갖고 있는 자료구조이다. 그런데 이 Queue는 항상 top 값이 원소중에 가장 작은값 or 큰값을 나타내는게 특징이다. 이러한 자료구조를 Heap 이라고하고 stl에서는 priority queue가 이런 기능을 제공함. 근데 동적자료할당에서 얘기하는 heap이랑은 관계없으니 헷갈리지말자 1. #include 2.priority_queue abc; 이렇게하면 큐인데 톱은 항상 제일 큰 놈 리턴 , greater 2020. 5. 22.
C++ map 참고하면 좋은 블로그 https://sarah950716.tistory.com/m/6 map 데이터타입은배열의 일종인데, 인덱스가 숫자가 아니라는 점이 배열과의 차이점이다.예시를 들어 설명하겠다. 1. #include 필요 2. 개념 예시map abc;abc["test1"]=5;abc["test2"]=3; 위의 배열 abc는 멤버변수가 2개인데, 접근하는 인덱스가test1, test2가 된다. 일반적으로 배열,벡터 등은 인덱스가 오직 정수인 것과 구분되는 개념이다. 3.멤버 추가하는 방법map.insert( {"test3", 12} );요런식으로도 추가가 가능하다. 앞서 말했듯 이런 명령말고 그냥 map["test3"] = 12; 이런식으로 해도 효과는 같다 4. 학생 이름 별로 학번,전화번호 정보를 갖.. 2020. 5. 2.
C++ stack 1.#include 필요 2. stack abc; 3. stack.push(5); 4. stack.top() 스택의 top값 리턴 5.stack.pop() 마지막원소 삭제 6. size() 7.empty 8.erase 2020. 5. 1.
c++ sort 1. #include 필요 2. vector 에서 사용 vector abc; sort(abc.begin(), abc.end() ) ; 하면 기본적으로 오름차순으로 정렬됨 ex. 1 2 3 4 5... 3. 배열에서 사용 .int arr[10]; sort(arr,arr+10); 하면 배열 정렬됨. 4. bool compare(int a, int b) { return a > b;} sort(xx , xx , compare); 이렇게 쓰면 내림차순 정렬가능. 5. compare 함수를 적절하게 쓰면 여러가지 데이터타입들을 원하는 규칙으로 정렬가능. ex)string vector abc; bool compare(string a , string b){ 여기서 true로 리턴하는 조건으로 정렬하게됨 return a.. 2020. 4. 29.
C++ string c언어에서 문자열을 사용할 때, char 형태의 배열에 담거나혹은 char* 형태의 포인터 상수를 사용했었다. 그리고 c언어에서 문자열은 마지막에 \0 이 들어가는것으로 구분했었다. 그리고 c언어에서 string과 관련된 여러가지 작업을 하기 위해서 표준 라이브러리를 사용했는데,strcpy, strlen 등의 함수가 그것이다. 한편, C++ 에는 좀 더 문자열과 관련하여 사용자가 다루기 쉽도록 string이라는 데이터타입이 추가되었음. 1) #include 을 호출해서 사용해야 한다. 2) string abc; //이런식으로 선언해서 쓸 수 있다. abc="this is string"; // 이런식으로 abc라는 string 변수에 문자열 대입이 가능하다. abc="change content" // 이런.. 2020. 4. 26.
C++ Queue 사용 C++에서는 Queue를 직접 구현할 필요 없이 간단하게 사용할 수 있게 제공한다. #include 를 추가해서 사용한다. 선언 queue abc; queue abc1; queue abc2; // 이런식으로 벡터를 원소로 갖는 queue도 생성 가능함. 사용 1. push() , pop() push는 queue에 데이터 삽입(제일 뒤에) pop은 queue의 첫번째 데이터 삭제 ※ 이 때. pop은 첫번째 값을 return 하지는 않는다. 요소를 삭제만하는 것에 유의. ex) abc.push(5); // abc라는 q에 데이터 5 add abc.push(6); abc.push(17); // 현재 q의 형태 : [ 5, 6, 17] abc.pop(); // [6,17] 2. front(), back(); .. 2020. 4. 26.
C++ vector 학교 다닐 때 C++을 아주아주 간략하게 배웠고, 그때 당시에 유명했던 열혈강의라는 책으로 C++을 공부했었다.근데 그때 당시에는 STL 이런게 없었던거 같은데알고리즘 공부를 하다보니 요즘에는 STL이라는게 아주 대중적으로 쓰이는것을 알게됐다. 1. vector 데이터타입(?)파이썬에도 이것과 비슷한 데이터타입이 있는걸로 아는데, 기존에 C나 C++에서 사용하던 배열 같은건데 좀 더 편리하고, 링크드리스트 스러운 것들이 좀 추가되었음. #include 를 포함해야하며, vector abc; vector abcd; 변수 선언을 이런식으로 한다. 배열로 따지자면 int arr[8]; char abcd[3]; 이런 느낌이다.그런데 배열은 처음 선언할 때 그 사이즈를 이미 고정시켜서 선언하며 또한 runtime.. 2020. 4. 26.