프로그래밍 언어/C++

간단한 swap 함수를 작성하였습니다. void fnSwap(int& first, int& second) { int temp = first; first = second; second = temp; } 사용은 별도로 참조형을 선언한다든지 할 필요 없이, 다음과 같이 변수를 직접 파라미터로 사용합니다. int a{10}, b{20}; fnSwap(a, b); 참조형을 입력 인자로 넣을 때도 마찬가지입니다. int a{10}, b{20}; int &ra{a}, &rb{b}; fnSwap(ra, rb); 즉, 참조형으로 선언된 파라미터는 원본을 전달하라는 의미로 컴파일러가 이해를 하고 있다고 알고 있으면 됩니다. 따라서 포인터 변수를 이용하여 위 함수를 호출할 경우라도 어렵게 생각하지 않고 우리가 적용하려고 하..
개요 printf와 같이 서식을 사용하여 문자열을 초기화 하고자 합니다. 본문 코드 // myString.cpp #include #include #include #include class myString : public std::string { public: myString(const std::string fmt, ...); }; myString::myString(const std::string fmt, ...) { va_list args, argtmp; va_start(args, fmt); va_copy(argtmp, args); int len = vsnprintf(nullptr, 0, fmt.c_str(), argtmp); char *buf = new char[len]; if (buf!=nullptr..
표준 입력 (cin) 대부분의 프로그램 환경에서 표준 입력의 기본값은 키보드입니다. C++ 스트림 객체가 이에 접근할 수 있도록 정의한 것이 cin입니다. C++에서 지원하는 기본 자료형은 추출 연산자 (>>)를 사용하여 사용자의 키보드 입력을 프로그램에서 얻을 수 있습니다. int n, q; cin >> n >> q; cin과 문자열(strings) 기본 자료형과 동일하게 추출 연산자 (>>)를 써서 cin에서 문자열을 얻을 수 있습니다. // cin with strings #include #include using namespace std; int main () { string myName; cout myName; cout
개요 C++ Standard Template Library의 vector 사용법을 학습합니다. 문제 출처 : Variable Sized Arrays | HackerRank 문제 요약 주어진 입력을 바탕으로 가변 길이의 배열들을 만들고, Query에 따라 각 배열의 원소를 화면에 출력하라. 예시 입력 2 2 // Array 2개, Query 2건 3 1 5 4 // 0번째 Array는 원소가 3개, 각 원소는 1,5,4 5 1 2 8 9 3 // 1번째 Array는 원소가 5개, 각 원소는 1,2,8,9,3 0 1 // 첫번째 Query 0번째 Array의 1번째 Index의 원소를 출력하라 1 3 // 두번째 Query 1번째 Array의 3번째 Index의 원소를 출력하라 예시 출력 5 9 풀이 #in..
개요 C 에서 string을 다루기 위해서는 문자열(character array) 을 사용합니다. 예를 들면 다음과 같습니다. char buf[12] = "Hello World"; printf ("%s\n", buf); 반면 C++ 의 경우는 라이브러리를 통해 String Class 를 제공하고 있습니다. String Class 내부적으로는 C 와 동일하게 문자열을 통하여 데이터를 저장하고 있지만 Class 에서 메모리 관리, 할당, Null Termination 등을 관리해 주고 있습니다. 덕분에 String 을 다루는 것이 C 에 비해 조금 더 편리하다고 할 수 있습니다.예를 들어 C 에서 문자열의 길이를 프로그램 실행시간에 가변으로 변경하고자 할 경우 동적 할당을 사용하도록 직접 구현해야겠지만 C+..
출처 : Class | HackerRank 문제 입력 형식입력은 4줄로 구성됩니다. 첫줄은 정수로 나이를 의미합니다. 두번째 줄은 영문 소문자 (‘a’-‘z’) 로 구성된 문자열로 이름을 나타냅니다. 세번째 줄 역시 영문 소문자로 구성된 문자열로 성을 의미합니다. 학생의 스탠다드를 의미합니다.참고: 이름과 성 각각에 포함된 문자는 50자를 넘지 않습니다.출력 형식HackerRank 에서 제공하는 코드가 여러분이 만든 Student class 를 사용합니다.예시 입력 15 john carmack 10 예시 출력 15 carmack, john 10 15,john,carmack,10 풀이 #include #include #include using namespace std; /* Enter code for cl..
출처 : HackerRank - Functions 문제 요약 입력받은 4개의 정수중 가장 큰 수를 출력하는 함수 를 작성하세요. 입력과 줄력은 문제의 Template 에 주어지므로 함수만 작성하면 됩니다.예시입력 3// 한줄에 1개씩 정수가 주어집니다. 4 6 5 예시출력 6// 3, 4, 6, 6 중 가장 큰 수는 6 입니다. 풀이 int max_of_four(int a, int b, int c, int d) 라는 함수를 완성할 것을 요구하고 있습니다. 인자 4개가 한번에 주어지므로 이들 사이의 크기를 비교하여 결과를 return 하면 됩니다. #include #include using namespace std; /* Add `int max_of_four(int a, int b, int c, int d..
출처 : HackerRank - Arrays Introduction 문제 요약 입력받은 정수 배열을 역순으로 출력하세요. 예시입력 4// 다음줄에 나올 정수의 갯수입니다. 1 4 3 2// 공백으로 구별된 정수를 제공합니다. 예시출력 2 3 4 1// 입력받은 역순으로 출력합니다. 풀이 C 와 달리 C++ 에서는 new 키워드를 사용하여 동적으로 배열을 선언하는 것이 가능합니다. (물론 C 에서도 malloc 함수를 사용하여 동적으로 메모리를 할당 할 수 있습니다) 때문에 첫줄의 입력값을 이용하여 정수 배열을 생성하고, 이에 반복문을 사용하여 입력값을 저장합니다. 다시 반복문을 역순으로 인덱싱하면서 돌아서 화면에 출력하면 요구사항을 만족하는 프로그램이 작성됩니다. #include #include #inc..
쓴웃음
'프로그래밍 언어/C++' 카테고리의 글 목록