// 포인터와 레퍼런스의 차이를 알아보는 코드이다. intmain() { std::stringstr = "HI THIS IS BRAIN"; std::string*stringPTR; std::string&stringREF = str; // 레퍼런스는 선언하면서 초기화 해줘야 한다. stringPTR = &str; // 주소 출력부 std::cout
//객체의 포인터를 반환하는 함수이다. Zombie* newZombie(std::string name) { Zombie *zom = new Zombie(name); return (zom); } cpp에서 동적할당을 하고 싶을 땐 객체이름 *이름 = new 생성자(arg); 이런식으로 한다. //객체 배열 포인터를 반환하는 함수이다. Zombie* zombieHorde( int N, std::string name ) { Zombie *zom = new Zombie[N]; for (int i = 0; i < N; i++) zom[i].setName(name); return (zom); } 객체 배열을 동적할당 할 땐 생성자 안에 arg를 직접 넣을 수가 없다. 만든 후에 초기화 해 주는 모습이다. intma..
C++의 헤더에 정의된 ifstream와 ofstream 클래스는 파일의 입력 및 출력 작업을 담당합니다. ifstream는 파일로부터 데이터를 읽는 데 사용되고, ofstream는 파일에 데이터를 쓰는 데 사용됩니다. 아래에 각 클래스의 기본 사용법을 설명하겠습니다. ifstream 사용 방법: 헤더 파일을 포함시킵니다: #include ifstream 객체를 선언하고 파일을 엽니다: ifstream inputFile("파일명"); 파일을 열었는지 확인합니다: if (inputFile.is_open()) { // 파일이 열렸을 때 수행할 작업을 여기에 작성합니다. } else { // 파일을 열지 못했을 때 수행할 작업을 여기에 작성합니다. } 파일에서 데이터를 읽습니다: int number; inpu..
문자열 알고리즘 문제 나오면 매번 구현하다 빡쳐서 하나 만듬 #include #include using namespace std; vectorft_split(string s, char sep) // 구분자 하나짜리 { vectorres; intstart_idx = 0; for (int i = 0; i start_idx) res.push_back(s.substr(start_idx, i - start_idx)); start_idx = i + 1; } } if (start_idx < s.size()) res.push_back(s.substr(start_idx, s.size() - start_idx)); return (res); ..
exit의 인자로 숫자가 들어올 때 exit status를 설정해 주기 위해 롱롱 오버플로우 부분을 처리해 줘야 했다. 서로 아이디어를 내 보았다. 눈물의 쇼를 했지만 그냥 atoll하는게 더 낫고 비긴 주소 설정해 주는 귀찮은 짓을 해야 해서 fail이다. 이젠 아쉽지도 않다 ㅋ 오히려 블로그 글감 생겨서 신난다. voidremove_zero_str(char **str)// 밖에서 비긴 저장해두고 프리 해야함 누수 난다 { inti; intminus; minus = 0; if (**str == '-' || **str == '+') { if (**str == '-') minus = 1; (*str)++; } while (**str == '0') (*str)++; if (minus) { *str -= 1;..