[C++] stl map
·
Data Structure
map에 대한 설명 - 노드기반으로 이루어진 균형 이진 트리 ( 어느 한 곳을 기준으로 왼쪽은 작은 것이, 오른쪽은 큰 것이 저장 ) - key와 value로 이루어져 있으며 pair의 형태로 저장된다 - key는 중복이 되지 않는다 (multimap에서는 중복을 허용한다) - 삽입, 삭제, 탐색의 시간 복잡도는 O(logN)이다 map의 사용 방법 #include map m;//선언 m.insert(pair("hello", 33));//삽입 m["hello"] = 33;//이런식으로 삽입도 가능 map의 순회방법 map::iterator iter; //방법1 for(iter = m.begin(); iter != m.end(); iter++) { cout first
함수 포인터
·
C++/Basic
double pam(int); double (*pf)(int); pf = pam; double y = pf(5); 함수포인터에 함수를 넣는다. - 함수포인터와 함수는 시그내처와 리턴형이 일치해야 한다. http://tcpschool.com/cpp/cpp_function_pointer 코딩교육 티씨피스쿨 4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등 tcpschool.com
포인터와 레퍼런스의 차이
·
C++/Basic
1. NULL의 사용여부가 다르다. - 우선 포인터는 NULL값을 허용한다. int *p = NULL; 하지만 초기화를 꼭 해주어야 된다. 초기화를 하지 않고 사용을 할 경우 에러가 나게 된다. NULL을 참조하고 있는 변수에 접근할 때 에러가 발생하므로 p = 110;//X if(p) p = 110;//O 포인터가 NULL을 참조하고 있지 않을 때에만 값을 대입할 수 있도록 하는 것이 좋다. - 레퍼런스는 NULL값을 허용하지 않는다. 2. 참조 대상 할당 및 접근 - 포인터는 할당할 때에 참조 대상에 대해서 &연산을 통해 주소값을 할당합니다.- 레퍼런스는 참조 대상자체를 할당합니다. int a = 100; int *p = &a;// 포인터는 주소를 할당 int &r = a; // 레퍼런스는 대상을 직..
[C++] 프로그래머스 등굣길 DP
·
Algorithm/Programmers
#include #include #include using namespace std; int solution(int m, int n, vector puddles) { vector lists(n + 1, vector(m + 1, 1)); for(int i = 0; i
[C++] 프로그래머스 보석 쇼핑 2020카카오인턴십 [미완]
·
Algorithm/Programmers
1번째시도 : 그냥 틀려버림 더보기 #include #include #include #include using namespace std; vector solution(vector gems) { vector answer; answer.push_back(1); answer.push_back(100002); map lists; int minlen = 100002; int endNum = gems.size(); string startName = gems[0]; //보석리스트 받아오기 for(int i = 0; i < gems.size(); i++) lists[gems[i]] = false; for(int i = 0; i < gems.size(); i++) { map visited = lists; int coun..
[C++] 프로그래머스 오픈채팅방 2019카카오블라인드
·
Algorithm/Programmers
#include #include #include #include using namespace std; vector solution(vector record) { vector answer; vector result(record.size()); map names; for(int i = 0; i > token) str[index++] = token; if(str[0] == "Enter") { names[str[1]] = str[2]; //코드의 이름을 변경 result[i].first = str[1]; //코드를 넣는다. ..