반응형

전체 글 216

[ 알고리즘 ] 배열 , STL vector

배열 : 메모리 상에 원소를 연속하게 배치한 자료구조 특징 - k 번째 원소를 확인, 변경가능 - 추가적으로 소모되는 메모리의 양(overhead)이 거의 없음 -Cache hit rate가 높음 - 메로리 상에 연속한 구간을 잡아야해서 할당에 제약이 걸림 기능 - 배열 추가, 삭제, ghkrdls O(1) - 임의의 위치에 원소 추가, 삭제 O(N) // 배열 임의의 위치에 추가, 삭제하는 코드 #include using namespace std; void insert(int idx, int num, int arr[], int& len) { if (len != idx) { for (int i = len; i > idx;i--) { arr[i] = arr[i - 1]; } } arr[idx] = num;..

공부/알고리즘 2022.02.07

7년의 밤 (정유정)

되게 오랜만에 소설책을 읽었다. 고등학교 때 생기부를 위해서 읽은 책 말고 나의 자의로 읽은 책은 얼마만인지 모르겠다. 7년의 밤은 몇년 전부터 읽고 싶었던 책이었지만, 생기부에 적히기에 적절하지 않다는 이유로 항상 미뤘었다. 최근에도 살까? 아냐 사도 안읽을거같아.를 반복하던 와중에, 책을 선물받아 읽어보게 되었다. 소설, 특히 판타지 소설은 전혀 못읽는 나였기에, 걱정반 기대반 상태로 책을 읽었다. 이 책은 다행히 판타지스럽지 않고 현실적인 범죄소설이었다. 그래서 그런지 평소에 스릴러를 좋아하는 내 취향에 딱 맞았다. 너무 재밌고 몰입 되어서 틈만나면 책을 읽었고 한번 읽으면 30분은 넘게 푹 빠져 읽었다. (30분 얼마 안되어 보이겠지만,,, 나에게는 엄청난 시간) 이 책이 인상깊었던 이유는 모든 ..

취미/독서 2022.02.06

[ C++ ] 10강. 깊은 복사, mutable, friend, static 멤버변수/함수

깊은복사 얕은 복사를 하면 주소값도 옮겨지기 때문에 소멸과정에서 오류가 난다 이에 내용은 같고 메모리는 다르게 만들어 줄 수 있도록 복사 생성자를 수정해줘야한다 //깊은 복사, 복사생성자 수정 예시 ArrayData::ArrayData(const ArrayData& copy) // 자기 자신이 인자로 들어올 때 : capacity(copy.capacity), used(copy.used) // 들어온거랑 똑같이 멤버변수 세팅 { data = new double[capacity]; // 동적할당은 새로운 매모리에 for (int i = 0; i < used; i++) // 내용은 모두 똑같이 복사 data[i] = copy.data[i]; } const 추가적인 내용 - const 객체 생성가능, const..

[ C++ ] 9강. 실습, 얕은 복사

실습하면서 알게된 점 1. 원본 데이터를 수정하고싶으면 &로 리턴해주면 된다 2. this는 클래스의 포인터 타입이다. 3. 포인터 타입은 -> 를 사용해야한다. 얕은 복사 Simple sum2(sim1) - 복사생성자를 생성하지 않아도 저절로 생성된 - 내용만 복사됨 문제점 - 동적할당 된 내용을 복사한다면, 주소값도 값이 복사되기 때문에 소멸될 때 런타임 오류가 일어남. -> 깊은 복사로 해결 가능 //lec9_Salesman.h #pragma once #include using namespace std; class Salesman { private: string name; double sales; public: Salesman(); ~Salesman(); Salesman(string name, do..

[ 8강 ] 클래스 (const 멤버함수, 생성자, 소멸자)

const 멤버함수 int GetX() const; // const 멤버함수 선언 - 클래스 내에서만 선언 가능 - 동일 클래스에 선언 된 멤버변수 값 변경 불가능 - const 객체는 cont 함수만 호출 가능 생성자 생성자 : 객체가 생성될 때 자동으로 호출되는 함수 : 클래스와 이름은 동일하지만 return 값이 없다 (오버로딩 가능) : 생성자가 하나라도 있으면 디폴트 생성자 기능 사라짐 이니셜라이저 생성자에서만 사용가능 생성하고 대입하는데 아니라 인자있는 형태로 생성되게 한다 Rectangle::Rectangle(const int& x1, const int& y1, const int& x2, const int& y2) :upLeft(x1,x2),loRight(x2,y2) {} 멤버변수도 초기화 ..

반응형