목록Language (35)
습관처럼
이번에는 C++의 Pair 클래스에 대해 간단히 정리 해보려합니다. 클래스사용법, 함수 및 간단한 예제를 준비해봤습니다~ Pair 클래스란? 1. 두 객체를 하나의 객체로 취급 할 수 있게 묶어주는 클래스입니다. 2. STL에서 데이터 "쌍"을 표현할때 사용. 3. 헤더에 존재. Pair 클래스 prototype 1. template struct pair; 2. template struct pair; T1 : first T2 : second 로 구분합니다. 멤버 함수 및 간단한 사용법 1. pair p : 사용할 데이터 타입 1, 2를 넣고 그 타입의 pair 클래스인 p를 만듭니다. 2. p.first : p의 첫번째 인자를 반환해 줍니다. 3. p.second : p의 두번째 인자를 반환해 줍니다. ..
맵은 다른용어로 연관배열(php, javascript), 딕셔너리(python), 해시맵(java), js object(javascript)등으로 다양하게 불리운다. 사실 해시맵은 맵의 일종이라고 보시면 편하게 사용할 수 있습니다. 맵에 대해서 약간 설명해보면 맵은 인덱스를 문자열로 받는 배열이라고 생각하면 편하다. 일반배열이 숫자만을 인덱스 번호로 받는다면 맵은 문자열을 인덱스 번호로 받을 수 있다는 점입니다. c++에서는 여러종류의 맵이 존재한다. 그 중에서 가장 유명한 맵은 map과 unordered_map이다. 이 둘은 각각 구현방법이 다르다. 그래서 사용하는 곳도 다르며 map은 balanced tree로 구현된다. 한국말로 하면 균형트리인데 균형트리중에서 red-black트리로 구현되있다. u..
알고리즘 문제를 풀때 가끔씩 string 안에서 찾고자 하는 문자 및 문자열을 찾아 변형 한거나 지우는 경우를 종종 볼 수 있습니다. 이때 고민하지 않고 바로 적용할 수 있도록 방법을 알아보도록 합시다~. 먼저 해당 문자를 찾기 위해서는 가장 먼저 떠오르른 것이 find라는 함수 입니다. 그러면 먼저 find 함수에 대해 알아봅시다. a.find("substring") 말 그대로 사용하시면 됩니다. 하지만 문제는 리턴값이다. 이를 별 생각없이 사용하면 문제가 생길 수 있습니다. 보통 find로 포함되는지 확인하고 싶다면 어떻게 써야하는가? 아마 대부분의 예제에서는 아래처럼 표현할 것이다. #include using namespace std; int main() { string a="hi hello"; i..
C++에서 stack 사용법을 간단하게 알아보자! 스택 기본 함수 추가 및 삭제 1. push(element) : top에 원소를 추가 2. pop() : top에 있는 원소를 삭제 조회 1. top() : top(스택의 처음이 아닌 가장 끝)에 있는 원소를 반환 기타 1. empty() : 스택이 비어있으면 true 아니면 false를 반환 2. size() : 스택 사이즈를 반환 #include #include using namespace std; int main(){ // 스택 생성 stack s; // push s.push(3); s.push(2); s.push(1); // top cout
이번에는 sort 보다 실행속도가 더 빠른 qsort에 대해 알아보도록 하겠습니다~. C ++의 qsort () 함수는 Quicksort 알고리즘을 사용하여 지정된 배열을 오름차순으로 정렬합니다. 이 기능은 헤더 파일에 정의되어 있습니다. qsort () 함수는 다음과 같이 지정된 배열을 정렬합니다. qsort() Prototype: qsort(array, num, type_size, compare_function) void qsort (void* base, size_t num, size_t size, int (*compare)(const void*,const void*)); Example : How qsort() function works? #include #include using namespace ..
벡터에서 중복 원소제거가 필요할 때가 있습니다. 그럴때 sort,unique,erase 의 기능을 적절히 활용하여 중복원소를 제거 할 수 있습니다. 먼저 백터하나를 만든뒤 데이터를 막넣습니다. (단 algorithm을 include 해주어야합니다 sort와 unique 사용을위해) #include #include #include #include using namespace std; vector s; int main() { s.push_back(1); s.push_back(2); s.push_back(1); s.push_back(3); s.push_back(2); s.push_back(1); s.push_back(2); printf("막넣은 백터s\n"); for(int i=0;i
C++에서는 next_permutation을 활용하여 순열과 조합을 만들수 있습니다. 그러면 직접 보면서 순열, 조합에 대해 알아봅시다~ 먼저 순열에 대해 보도록 하겠습니다 중복이 있는 원소들의 경우 중복이 있는 원소의 경우 중복인 경우를 제외하고 순열을 만들어줍니다. 즉, 예를 들어서 0 1 1이 있다면 아래와 같은 경우만 순열을 출력해줍니다. #include #include #include using namespace std; int main (){ vector v; // 0 1 1 대입 v.push_back(0); v.push_back(1); v.push_back(1); // 정렬 sort(v.begin(), v.end()); //순열 do{ // 출력 for(int i=0; i
BlockDMask님의 정리 자료를 학습 및 참고하고자 가지고 왔습니다. 오늘은 C++의 std::string 클래스(문자열)에 대해서 세세 하게 알아볼것 입니다. 문자열 관련 특정 함수 예제만 보실분들은 아래 예제들에서 사용한 멤버 함수들을 적어 두었으니 해당 예제로 바로 내려가시면 됩니다. 1. C++ string 클래스 헤더파일과 설명 그리고 생성하는 방법. 2. C++ string 클래스 멤버함수 거~의 대부분 정리 (꼼꼼하게 작성했습니다.) -> at(), operator[], front(), back() -> size(), length(), capacity(), resize(), shrink_to_fit(), reserve(), clear(), empty() -> c_str(), substr(..