목록프로그래밍 (26)
삶의 공유
우리가 만든 MyString 문자열 클래스에 == 연산자 오버로딩하여 문자열 비교 기능을 추가해보자 연산자 오버로딩이란? +, -, ==, [ ]와 같은 기본적으로 정의되어 있는 연산자 들을 우리의 입맛에 맞게 변형해서 사용할 수 있는것을 의미 operator 연산자 기본 구조는 다음과 같다. "(리턴타입) operator (연산자)(연산자가 받는인자)" 변수 정의 1) char* string_content : 문자열 데이터를 가르키는 포인터 2) int string_length : 문자열 길이 3) int memory_capacity : 현재 할당된 용량 char* string_content; int string_length; int memory_capacity; 생성자 소멸자 정의 1) 'a', 'b..
주가데이터와 섹터 데이터연계하여 섹터별 등락률 구하기 및 코스피와 비교 1) MySQL에서 섹터 정보 불러오기(sector_info) - 앞서 저장한 MySQL DB에서 섹터 정보를 불러와보자, 전체 코드는 이렇다. import pymysql import pandas as pd # MySQL에서 Investar DB에 접속 conn = pymysql.connect(host='localhost', user='root', passwd='여러분비번', db='여러분DB', charset='utf8') sql = 'SELECT * FROM sector_info' sector_table = pd.read_sql(sql, conn) # sector_info Table을 read_sql()함수로 읽는다. sector..

string 클래스를 직접 만들어, 우리가 string a = "a" 이렇게 쉽게 작성했던 것들이 어떻게 동작하는지 이해를 해보고자 한다. 먼저 정의 부분은 다음과 같다. #include class string { char *str; int len; public: string(char c, int n); // 문자c 가n 개있는문자열로정의 string(const char *s); string(const string &s); //~string(); void add_string(const string &s); // str뒤에 s를 붙인다. void copy_string(const string &s); // s를 복사한 값을 str에 대입한다. int strlen(); // 문자열 길이 리턴 }; 변수는 *s..

https://youtu.be/WOyp5n2FmZY 초기 셋팅은 위에 내용 참고하고 이거 진행 후에 에러가 있었던 부분에 대해서 추가 셋팅 해야하는 방법에 대해 적는다 우측에 Project Document의 project format을 xcode 12.0-compatible로 변경한다 (최신 버전) Build Phase 부분에서 Runscript부분에 For install builds only에 check를 해준다 마지막으로 권한 허용을 해줘야함 이렇게 모든곳 이라는 항목이 없으면 터미널을 이용하여 권한 설정 을 해야함 모든 곳 활성화 : sudo spctl --master-disable 모든 곳 비활성화 : suto spctl --master-enable 모든곳 활성화/비활성화 상태 확인 sudo sp..

출저 : 책, 전문가를 위한 C++ 메모리 공간을 적당히 할당하기만 하면 어떠한 값이라도 힙에 저장할 수 있다. 예를 들어 정수값을 힙에 저장하려면 정수 타입에 맞는 메모리 공간을 할당해야하는데 이때 다음과 같이 포인터를 선언해야 한다. int* myIntegerPointer; int 타입 뒤에 붙은 별표(*)는 이 변수가 정수 타입에 대한 메모리 공간을 가르킨다는 것을 의미한다. 이 때 포인터는 동적으로 할당된 힙 메모리를 가리키는 화살표와 같다. 아직 값을 할당 하지 않았기 때문에 포인터가 구체적으로 가리키는 대상은 없다. 이를 초기화 되지 않은 변수 라 부른다. 변수를 선언한 후에는 반드시 초기화 해야한다. 특히 포인터 변수는 초기화 하지 않으면 어느 메모리를 가르키는지 알수 없기 때문에 반드시 초..

출저 : 책, 전문가를 위한 C++ ① 반복문 컴퓨터는 같은 일을 계속 반복하는데 뛰어나다. 이를 위해 C++는 while, do.while,for, 범위기반 for 등 네가지 반복 메커니즘을 제공한다. ② while문 while문은 주어진 표현식이 true가 될 때 까지 일정한 코드 블록을 계속해서 반복한다. 다음 코드는 This is silly. 라는 문장을 다섯번 출력한다. #include int main() { int i = 0; while (i < 5) { std::cout