728x90 CPP33 [Cpp 개념공부]new 와 malloc의 차이점 자유도가 높다.위험하다. 과거 컴퓨터는 용량이 작아서 괜찮.malloc은 과거를 기준으로 만들어져 있어서지금은 패러다임이 바뀜이때 운영체제가 보호모드로 바꼈다.보호모드의 큰 특징이 커널모드와 유저모드의 분리로 어플리케이션 오류가 운영체제 자체를 망치지 않는다.큰 변화가 가상메모리 인데 과거에는 없는 공간에서 새로운 공간을 만드는 것 까진 아니더라도 부족한 공간에서 원하는 크기만큼 그 공간을 확보하기 위해서 연산을 많이 해서 거의 새로운 공간을 창출하는 느낌이었다면 지금은 이미 있는 공간에 메모리를 사용하겠다고 표시만 해주는 느낌이다. malloc이 실패한다는건 이젠 운영체제가 메모리 관리를 하기 때문에 거의 없는데 근데 동적할당할 때 막 2기가를 할당하려고 하면 실패한다.거의 항상 성공해서 malloc함.. 2023. 1. 13. [Cpp 개념공부]__cin에서 endof 를 쏴줄 때 cin이 다시 사용하지 못하는 이슈__ 나의 궁금증을 한줄로 요약하자면안녕하세요 혹시 cin을 입력 받을 때 유닉스의 경우 ctrl+d 윈도우의 경우 ctrl+z를 입력하면 endof를 입력이 되는걸로 알고 있는데 이렇게 입력을 받고나면은 다른 cin은 전부 실행이 되지 않고, 끝나게 됩니다. cin이 endof를 받게되면 endofbit를 초기화해서 stdin을 사용하지 못하게 하는 것 같은데, 이것을 혹시 되돌려서 다시 cin 즉 stdin을 받는 방법을 아실까 싶어서 댓글 남겨봅니다. 감사합니다! cin에서 endof 를 쏴줄 때 cin이 다시 사용하지 못하도록 변하는 것 같다.이 문제를 어떻게 해결 할 수 있을까?완전히 고장나는 것일까? try catch를 하는 것 말고 cin을 고치는 방법은 없는 걸까?window와 unix에서의 e.. 2023. 1. 13. [Cpp 개념공부]cin대신 getline cin을 사용하면 공백과 개행을 기준으로 입력을 받으므로 getline함수를 이용해서 한줄을 통째로 받도록하자.cin과 getline을 동시에 사용할 때 생기는 이슈cin의 경우 입력을 “aaa\n”이렇게 넣어주더라도, aaa까지만 입력에 들어오고 뒤의 \n의 경우 남아있어서 getline함수가 그것을 버퍼에 가지고 있을 수 있습니다.getline사용법사용법 1#include int main() { string command; getline(std::cin,command); }다음과 같이 cin할 녀석과 입력을 받아서 저장할 인스턴스를 미리 지정해주면, 위 코드에서는 command string에 개행 기준으로 넣게 된다.이전에 string 사용법에서 잘 정리해줘서 그걸 보고 getline함수를 쓰면 된다.. 2023. 1. 13. [Cpp 개념공부] **Meaning of position of const(**const위치에 따른 의미차이) 1. const 변수 const int n = 0; int const n = 0; n = 2; // Compile Error 위의 두 코드는 의미가 같다. 2. const 멤버 변수 클래스 내부에도 const키워드를 사용해서 초기화를 할 수 있는데 반드시 초기화 리스트를 사용해야만 한다. class Example { const int n; Example(void) : n(1){}// const int num = 1; }; class ERROR { const int N; Bar(void) { N = 1; // Compile Error } }; 위 와 같이 클래스에서 멤버변수를 const로 만들고 초기화 하고 싶다면 반드시 생성자 초기화 리스트를 써야하고 아래 클래스를 돌려보면 컴파일 에러가 발생하는 것을 .. 2023. 1. 13. 배열 활용 함수(C++)(알고리즘) 위 글은 큰돌의 터전 님의 강의자료를 참조해서 정리하고 제가 알고리즘을 풀면서 더 추가적으로 사용할 만한 내용들을 정리한 글입니다. 알고리즘 풀이 강의로 큰돌의 터전님의 강의 강력 추천드립니다. 강의링크 rotate() 시계 방향과 반시계 방향으로 회전하는 로직을 짤 때 쓰는 함수. #include using namespace std; vector v; int main(){ for (int i=1; i 2022. 12. 29. priority queue(우선순위 큐)(C++)(알고리즘) 위 글은 큰돌의 터전 님의 강의자료를 참조해서 정리하고 제가 알고리즘을 풀면서 더 추가적으로 사용할 만한 내용들을 정리한 글입니다. 알고리즘 풀이 강의로 큰돌의 터전님의 강의 강력 추천드립니다. 강의링크 우선순위 큐란 무엇인가? 우선순위 큐(priority queue)는 각 요소에 어떠한 우선순위가 추가로 부여되어있는 컨테이너를 말합니다. 우선순위 큐에서 우선순위가 높은 요소는 우선순위가 낮은 요소보다 먼저 제공됩니다. 일부 구현에서 두 요소의 우선 순위가 같으면 대기열에 포함된 순서에 따라 제공됩니다. 다른 구현에서 동일한 우선 순위를 가진 요소의 순서는 정의되지 않은 상태로 유지됩니다. 힙은 완전이진트리로 최소힙 또는 최대힙이 있으며 삽입, 삭제, 탐색, 수정에 대해 O(logN)의 시간복잡도를 갖습.. 2022. 12. 29. queue와 dqueue(C++)(알고리즘) 위 글은 큰돌의 터전 님의 강의자료를 참조해서 정리하고 제가 알고리즘을 풀면서 더 추가적으로 사용할 만한 내용들을 정리한 글입니다. 알고리즘 풀이 강의로 큰돌의 터전님의 강의 강력 추천드립니다. 강의링크 queue란 무엇인가 큐(queue)는 먼저 집어넣은 데이터가 먼저 나오는 성질인 선입선출(FIFO, First In First Out)을 지닌 자료 구조이며, 나중에 집어넣은 데이터가 먼저 나오는 스택과는 반대되는 개념을 가졌습니다. 삽입 및 삭제에 O(1), 탐색에 O(n)이 걸립니다. 예시코드 #include using namespace std; queue q; int main() { for(int i = 1; i 2022. 12. 29. Stack(C++)(알고리즘) 위 글은 큰돌의 터전 님의 강의자료를 참조해서 정리하고 제가 알고리즘을 풀면서 더 추가적으로 사용할 만한 내용들을 정리한 글입니다. 알고리즘 풀이 강의로 큰돌의 터전님의 강의 강력 추천드립니다. 강의링크 stack이란 스택은 가장 마지막으로 들어간 데이터가 가장 첫 번째로 나오는 성질인 후입선출(LIFO, Last In First Out)을 가진 자료 구조입니다. 재귀적인 함수, 알고리즘에 사용되며 웹 브라우저 방문 기록 등에 쓰입니다. 삽입 및 삭제에 O(1), 탐색에 O(n)이 걸립니다. 탐색에 O(n)이 걸리는 이유는 n번째 요소를 찾는다고 가정하면 계속해서 앞에 있는 요소를 끄집어내는 과정을 n 번 반복해야 찾을 수 있기 때문입니다. 예시 코드 #include using namespace std;.. 2022. 12. 29. Map과 unordered_map, Set과 multiset(C++)(알고리즘) 위 글은 큰돌의 터전 님의 강의자료를 참조해서 정리하고 제가 알고리즘을 풀면서 더 추가적으로 사용할 만한 내용들을 정리한 글입니다. 알고리즘 풀이 강의로 큰돌의 터전님의 강의 강력 추천드립니다. 강의링크 map map은 고유한 키를 기반으로 키 - 값(key - value) 쌍으로 이루어져 있는 정렬된(삽입할 때마다 자동 정렬된) 연관 컨테이너입니다. 레드 - 블랙트리로 구현됩니다. 레드 - 블랙 트리로 구현되어있기 때문에 삽입, 삭제, 수정, 탐색이 O(logN)의 시간복잡도를 가집니다. 고유한 키를 갖기 때문에 하나의 키에 중복된 값이 들어갈 수 없으며 자동으로 오름차순 정렬되기 때문에 넣은 순서대로 map을 탐색할 수 있는 것이 아닌 아스키코드순으로 정렬된 값들을 기반으로 탐색하게 됩니다. 또한 대.. 2022. 12. 29. 이전 1 2 3 4 다음 728x90