Study118 [C++] final 키워드 2 이것 저것 알아보면서 코드를 보면 final이라는 키워드가 있는데 이게 뭐지 싶었다. 알아보니 final은 c/c++에서는 쓰이지 않고, java에서 쓰이는 것이라고 한다. java에서 변수 앞에 쓰이는 final은 c++에서의 const와 같은 상수를 뜻한다! //요약 final은 java에서 쓰임 변수 앞에 쓰인 fianl은 c++의 const와 같은 의미로 사용 2023. 10. 24. [C++] strchr함수 - 문자 검색 1. 라이브러리 : 2. 함수 원형 // 검색할 문자열, 존재하는지 확인할 문자(아스키 값) const char* strchr(const char* str, int c); char strchr(char* str, int c); 3. 함수 설명 - 문자열 내에서 해당 문자가 있는지 검색해주는 함수 - 첫번째 문자열 내에 두번째 문자가 존재하는지 검사 - 존재하면 존재하는 곳의 포인터 반환, 존재하지 않으면 널 포인터 반환 4. 예시 1) 특정 문자 찾기 // string 이용 -> 주소값 사용 string str = "aAbBcCdD"; char* ptr = strchr(&str[0], 'C'); // 알파벳 C를 찾음 if(ptr != nullptr) { cout 2023. 10. 20. [C++] npos 1. string::npos란? - string의 find() 함수 수행 시에 찾는 문자열이 없을 때 반환된다. - '-1' 의 값을 가지는 상수이다. 2. 예시 string s = "abcde"; if(s.find('a') == string::npos) // a는 s에 들어있으므로 false 반환 { cout 2023. 10. 19. [C++] final 키워드 1. final - 상속을 방지하는 키워드 - 더 이상 가상함수를 오버라이딩하지 않겠다는 의미 - 가상함수의 마지막을 가르키는 키워드 - 클래스와 멤버함수 둘 다 사용 가능 - override와 같은 자리에 쓰임 2. 예시 #include using namespacee std; class A { public: virtual void print() { cout 2023. 10. 18. [알고리즘] 이분 탐색(Binary Search) 1. 이분 탐색 - 정렬된 배열에서 찾고자 하는 수를 찾는 방법 - 계속해서 두가지 경우로 나누면서 탐색 - 인덱스를 이용해 탐색 - 시간복잡도 : O(logN) 2. 탐색 방법 1. 배열의 첫번째 인덱스와 마지막 인덱스 번호를 각각 left, right로 저장 2. left와 right의 중간지점인 mid의 인덱스를 (left+right)/2 를 이용해 구함 3. left가 right보다 커지는 시점까지 반복 -> left보다 right가 커지면 찾고자 하는 수가 없는 경우임 4. 배열의 mid번째 값과 내가 찾고자 하는 값을 비교 4-1. 내가 찾고자 하는 값이 mid보다 작은 경우 - 최소한 mid - 1번째 인덱스의 값보다는 작거나 같기 때문에 right를 mid-1로 변경시켜 최대값을 바꿔줌(구.. 2023. 10. 18. [C++] char형에서 int형으로 형 변환 오늘 오랜만에 프로그래머스 문제를 풀다가 char형을 int형으로 형 변환시키는 것에서 순간 막혔다. string형은 int형으로 바꾸려면 stoi를 사용하면 되는데 char형은 뭘로 바꿔야 하지? 하다가 stoi랑 같이 나오는 atoi가 const char * 를 인수로 받길래 이거구나 싶어서 해봤는데 잘 되지 않았다. 그래서 검색해서 찾아보았고, 알고보니 쉬웠다. char형은 아스키코드이기 때문에 현재 char에서 '0'의 아스키코드 값을 빼주어 구할 수 있었다. char c = '5'; int i = c - '0'; cout 2023. 10. 17. [UML] 타이밍 다이어그램(Timing Diagram) - 시간에 따른 각 객체의 상태와 그 상태를 변경시키는 방아쇠 역할을 하는 메시지들을 보여주는 도표 - 순차 다이어그램과 상태 머신 다이어그램을 합쳐 놓은 것과 같다. - 각 신호들이 시간별로 처리되는 과정을 그림으로 나타낸 것 - 신호의 동작을 정확한 타이밍에 맞춰 이뤄지게 하여 발생할 수 있는 충돌이나 간섭을 방지할 수 있음 1) 시간축 - 시간의 흐름을 나타내는 수평선 2) 신호 - 수직선으로 표시되고 상태 변화에 따라 높은 레벨과 낮은 레벨로 표시됨 3) 클럭 - 시스템의 타이밍 신호로 주기적으로 반복되는 신호로 표시됨 - 시스템의 동작을 동기화함 4) 지연 - 신호의 전달이나 처리에 소요되는 시간을 나타냄 5) 상태 전이 - 신호의 상태 변화를 표현 2023. 10. 13. [UML] 프로필 다이어그램(Profile Diagram) - UML 요소, 커넥터 및 구성 요소를 확장하는 패키지에서 만든 것 - 도메인과 플랫폼의 관계를 정의할 수 있는 다이어그램 - 스테레오타입을 스테레오타입이 있는 클래스로 표시하고 프로필을 스테레오타입이 있는 패키지로 표시한다. - 스테레오타입을 생성하고 리소스 중심 인터페이스를 통해 구성 또는 일반화와 연관시킬 수 있음 - 스테레오타입의 태그 값을 정의하고 시각화도 할 수 있음 2023. 10. 13. [UML] 패키지 다이어그램(Package Diagram) - 어떤 구성요소라도 더 높은 수준의 단위로 묶을 수 있도록 해주는 구조 - 클래스와 같은 여러 모델 요소들을 그룹화하여 표현하기 위한 수단 - 각 패키지는 네임스페이스를 나타냄 - 모든 클래스는 자신이 속한 패키지 내에서 유일해야 함 - 규모가 큰 시스템에서는 패키지 다이어그램을 보아야 해당 시스템의 구조를 이해하고 제어할 수 있음 1) 패키지 - 여러 클래스들로 구성된 묶음 2) 의존 관계 - 하나의 패키지가 다른 패키지를 사용하는 관계 3) - 어떤 패키지가 너무 많은 곳에 쓰여서 의존을 표시하면 다이그램이 보기 힘들어질 때 키워드를 붙여 사용 - 패키지를 바라보는 시각에 따라 아래와 같이 여러가지 방법으로 표현될 수 있다. 2023. 10. 12. [UML] 상호 작용 개요 다이어그램(Interaction Overview Diagram) - 시스템 구성 요소들 사이의 상호 작용을 표현하는 다이어그램 중 하나 - 객체들 간에 주고받는 메시지를 통해 상호 작용을 명세 - 여러 조건 분기를 적용하기에 적절함 - 활동 순서를 시각화한다는 것에서 활동 다이어그램과 유사 - 각 개별 활동인 중첩된 상호 작용 다이어그램을 포함할 수 있는 프레임으로 표시됨 - 활동 다이어그램과 같은 표기(초기,최종,결정,병합,분기,조인)를 사용하고 추가로 '상호 작용 발생', '상호 작용 요소'를 사용함 - if-then-else 경로를 단일 시퀀스 다이어그램으로 설명해야하는 복잡한 시나리오 분석에 유용함 2023. 10. 12. [UML] 복합 구조 다이어그램(Composite Structure Diagram) - 클래스 내부 부분들을 나타내기 위해 사용 - 복합 구조의 클래스와 컴포넌트 내부 구조를 표현한다. - 클래스를 계층적인 내부 구조로 분해하여 복잡한 객체를 여러 개의 부분으로 나눔 1) 부분(Part) - 클래스 내부의 요소들을 나타냄 - "이름:클래스"의 형태로 나타내는데 둘 다 선택사항이다.(생략가능함) - 대괄호 속에 '[1]' 이런식으로 표시하여 다중성을 나타낸다. 2) 연결자(Connector) - 부분들 사이에 선으로 이어진 부분을 말한다. 3) 포트(Port) - 외부와 내부가 연결되는 지점 - 작은 네모로 표시 4) 대리 연결자(Delegation connector) - 포트와 부분 사이를 연결 - 화살표로 표시 - 같은 모델인데 왼쪽은 클래스, 오른쪽은 복합 구조 다이어그램을 나타냄 2023. 10. 12. [UML] 상태 머신 다이어그램(State Machine Diagram) - 객체의 행동 다이어그램 중 하나 - 객체는 특정 상태를 지니며 이 상태는 이벤트와 같은 액션에 의해서 변경되는데, 이러한 객체의 상태와 상태의 변화를 도식화 한 다이어그램이 상태 머신 다이어그램이다. - 상태 머신을 이용해 각 객체의 행동을 모델링한다. 1) 시작 마크(First State) - 프로세스에서 처음 상태를 나타냄 - 해당 마크와 이어진 상태가 처음 상태임 2) 상태(State) - 프로세스의 상태를 나타냄 - 둥근 모서리의 네모박스 3) 이벤트(Event)와 상태 변경/전이(Transition) - 이벤트는 상태 변경을 일으키는 무언가를 뜻한다. - 이벤트를 통해 외부에 의한 액션이 있을 수 있고, 아니면 시간의 경과에 따른 결과가 될 수도 있다. - 기존 상태에서 새로운 상태로 변화하.. 2023. 10. 10. 이전 1 2 3 4 5 6 7 8 ··· 10 다음