728x90
반응형
728x90
반응형
네임스페이스(namespace)는 C++에서 식별자들을 그룹화하고 충돌을 방지하기 위한 방법으로 사용된다. 이게 무슨 말이냐면 예를 들어 A고등학교에 1학년 2반에 김민수라는 학생이 있고, 1학년 5반에 김민수라는 학생이 있어서 총 2명의 김민수가 있다면 김민수라는 학생을 부르기 위해서 이름을 부른다면 2명의 김민수가 모두 대답할 것이다. 1학년 2반의 김민수만을 부르고 싶다면 "1학년 2반 김민수"라고 부르면 1학년 2반의 김민수만 대답을 할 것이다. 이와 같은 개념이 네임스페이스다. 이 내용을 코드로 살펴보면. #include namespace one_two_class_minsoo { void minsoo(void); } namespace one_five_class_minsoo { void minso..
inline 함수inline 함수는 매크로 함수를 대체할 수 있다. #include #define SQUARE(x) ((x)*(x))// inline으로 정의inline int square(int x){ return x*x;}int main(){ // inline 함수를 호출 std::cout3번째 줄에서 정의한 #define SQUARE(x) ((x)*(x)) 매크로 함수와 6~9 번째 줄에 정의한 inline int square(int x)는 동일한 기능을 수행하는 함수다. 매크로 함수를 호출한 경우 전처리 과정을 거치면서 SQUARE(12) 가 ((12)*(12))로 대체된다. 이와 같이 함수의 몸체 부분이 함수 호출 문장을 완전히 대체 했을 때 함수가 인라인화 되었다. 라고 표..
주어진 문자열을 소문자에서 대문자 순서로 정렬하라. #include #include #include #include // 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요. char* solution(const char* s) { // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요. int len = strlen(s); char temp; char* answer = (char*)malloc((sizeof(char) * len)); strcpy(answer, ""); // answer clear strcpy(answer, s); for (int i = 0; i < len; i++) { // bubble sort ..
아... 문자열에 취약한 콩이... 임베디드 개발을 하다 보면 문자열을 다룰일이 거의 없다. 아니 정확히 말하면 있는데 보통 하나의 바이트로 처리를 하니까 특별히 신경 쓸 일이 없다. 그리고, 한글? 다룰일이 없다. 이번 기회에 공부했다. 1. 길이가 n인 "수박수박수박수박수박..."과 같은 패턴을 유지하는 문자열을 리턴 2. 홀수면 "수", 짝수면 "박"으로 끝남. #include #include #include #include char* solution(int n) { // 리턴할 값은 메모리를 동적 할당해주세요. char* answer = (char*)malloc(((sizeof(char)*3)*n)); strcpy(answer, ""); // 쓰레기값 제거 for(int i = 0; i < n; ..
숫자가 담긴 배열 absolutes 숫자의 개수(길이)가 담긴 배열 abolutes_len 숫자의 부호가 담긴 배열 signs 숫자의 부호 개수(길이)가 담긴 배열 signs_len 1. absoultes에 담긴 모든 숫자를 더함. 2. 부호를 판별해 fasle면 숫자를 음수로 변경하고 더함. #include #include #include // absolutes_len은 배열 absolutes의 길이입니다. // signs_len은 배열 signs의 길이입니다. int solution(int absolutes[], size_t absolutes_len, bool signs[], size_t signs_len) { int answer = 0; for(int i = 0; i < absolutes_len; ..