분류 전체보기 102

C++[Vector]

백터란?STL의 시퀀스 컨테이너 중 하나로, 동적 배열을 구현한 것이다. 주요 특징동적 크기 조정 - 요소를 추가하면 자동으로 메모리를 재할당하며 크기를 늘림.임의 접근 - 배열처럼 인덱스를 사용하여 요소에 빠르게 접근 가능하다.연속된 메모리 - vector는 메모리에 연속적으로 저장되기 때문에 캐시 효율성이 높음다양한 메서드 제공 - 요소 추가, 삭제, 정령, 검색 등 다양한 메서드(함수)를 제공한다.주요 메서드vector 이름; push_back(valeu) : vector의 끝에 요소를 추가한다.size() : 현재 vector에 저장된 요소의 개수 반환.at(index) : 인덱스에 있는 요소에 안전하게 접근할 수 있도록 해줌.(인덱스 유효성 검사)capacity()현재 할당된 메모리 용량을 반환..

C++/개념정리 2025.01.01

C++[STL]

SLTStandard Template Library의 약자로 C++에서 지원하는 템플릿 라이브러리다. STL은 데이터 구조와 알고리즘을 효율적으로 사용할 수 있도록 도와주는 다양한 구성 요소를 포함하고 있다.주요 구성 요소컨테이너(Containers):데이터를 저장하는 데 사용되는 클래스 템플릿.예: vector, list, map, set 등.알고리즘(Algorithms):컨테이너에 저장된 데이터를 처리하는 함수 템플릿.예: 정렬, 검색, 변환 등의 기능을 제공.이터레이터(Iterators):컨테이너의 요소에 접근하고 순회하는 방법을 제공하는 객체.포인터처럼 동작하며, 다양한 유형의 이터레이터가 존재.함수 객체(Function Objects):함수처럼 동작하는 객체로, 알고리즘에 전달할 수 있는 사용자..

C++/개념정리 2025.01.01

2025.1.1[조합]

조합이란?서로 다른 n개에서 순서를 생각하지 않고 r개를 뽑는 것을 n개에서 r개를 택하는 조합이라한다.예시) 순열에서 조합구하기[1,2,3,4 네 개의 카드중에서 세개를 택하는 방법의 수는?] 이라는 문제를 봤다고 하자 일단 이걸 나열하는 순열의 조합은? 직순열이기 때문에 이게 되지만. 나열을 하지 않았기 때문에 안에서 순서가 바뀌는것은 같은 경우로 본다.그렇다면 같은 수 끼리 순서만 바뀌는 경우의 수는 곱의 법칙에 의해 3!이기 때문에 3!을 나눠주면 된다.그러므로 정답은 4가 된다.nCr공식 서로 다른 n개에서 순서를 생각하지 않고 r개를 뽑는 것은, nPr의 직순열에서 순서끼리 바뀌는 방법을 빼주면 되기 때문에이런 공식이 된다.

2025.1.1[만나다, 열리다, 먹다, 보다, 자동차]

会(あ)う : 만나다会 : 모일 회会 음독 : カイ(회계, 회화, 사회, 교회 등)人(사람 인), 云(이룰 운)자가 합쳐진 문자다. 開(あ)ける : 열리다開 : 열 개開음독 : カイ(개시, 개척, 전개 등)門(문 문), 一(한 일, 그러나 여기선 빗장을 나타냄), 廾(받들 공)자가 합쳐진 문자로 문의 빗장을 들어올려 여는 모습을 나타낸다. 食(た)べる : 먹다食 : 밥 식食음독 : しょく(식사, 식품, 식당 등) 見(み)る : 보다見 : 볼 견見음독 : けん(견학, 견해, 소견 등) 車(くるま) : 차車 : 수레 차車 음독 :しゃ(자동차, 차륜 등)

2024.12.31[같은 것이 있는 순열]

같은 것이 있는 순열이란?n개 중 같은 것이 각각 p, q, ...., r개씩 있을 때 이들을 모두 택하여 일렬로 배열하는 순열의 수.예제a,a,a,b 네 개의 카드를 일렬로 나열하는 경우의 수를 예시로 들겠다.일단 일렬로 나열을 하는것이기 때문에 직순열로 계산을 해 4!로 계산을 하겠다. 그러면 총 24가지가 나오는데 여기서 a끼리는 서로 바뀌어도 똑같기 때문에 총 3개의 a들 끼리 바뀌는건 같다고 보면 a는 3개이기 때문에 3!의 값을 가지게된다.그렇기 때문에 나올 수 있는 문자의 수는 총 4종류라고 볼 수 있다. 공식n개 중 같은 것이 각각 p, q, ...., r개씩 있을 때.가 공식이 된다

C++[템플릿]

템플릿이란?템플릿은 동일한 코드를 다양한 데이터 타입으로 사용가능한 기능이다. 데이터 타입은 T로 하면 된다.우리는 여러 타입의 값을 같은 함수로 사용하기 위해 저번에 배운 오버로딩을 해서 구현했었지만, 매번 코딩을 할 때 마다 여러 타입이 들어갈 수 있는 함수를 전부 오버로딩을 할 수는 없기 때문에 그걸 위해 존재하는 기능이라고 보면 된다. 1.함수 템플릿다양한 데이터 타입에 대해 동일한 함수 로직을 사용할 수 있다.위에 템플릿 타입의 a, b가 있고 main에서 int와 double타입의 변수를 입력시켜 add라는 함수를 실행해 보겠다.두 타입 다 잘 작동하는걸 볼 수 있다.2. 클래스 템플릿클래스 템플릿 또한 동일한 구조를 다양한 데이터 타입으로 사용하기 위한것이고 함수와는 약간 다른게 있다.클래스..

C++/개념정리 2024.12.31

C++[함수 오버로딩]

함수 오버로딩C++는 C언어와 다르게 규칙만 지키면 동일한 이름의 함수를 사용할 수 있다. 이 시스템을 오버로딩이라고 한다.하지만 동작 체계까지 완전 같으면 구분할 수 없기 때문에 필수 조건이 있다.매개 변수 타입매개 변수의 개수이 두개중 하나는 무조건 달라야 프로그램이 구분을 해서 사용할 수 있다.매개 변수 타입이 다른 경우똑같은 이름인 display라는 함수를 각기 다른 타입으로 만들었고 입력 타입만 다르게 바꿨다 실행을 하니 문제없이 잘 작동한다. 매개 변수의 개수가 다른 경우세개 다  display라는 이름의 함수로 매개변수의 개수만 다르게 설정하고 실행시켜봤다. 전혀 문제없이 잘 돌아간다. 주의해야되는것!위의 경우 매개변수의 타입이 다르기 때문에 잘 작동될것으로 생각되지만 포인터의 개념이 arr..

C++/개념정리 2024.12.31

C++[얕은 복사, 깊은 복사]

얕은 복사(Shallow Copy)객체의 메모리 주소를 복사한다. 원본 객체와 복사된 객체가 같은 메모리 주소를 가리킨다.복사된 객체는 원본 객체와 동일한 데이터에 접근하기 때문에, 원본 객체가 삭제되면 복사된 객체도 영향을 받아 잘못된 메모리 접근이 발생할 수 있음. 깊은복사 (Deep Copy)객체의 모든 데이터를 복사하여 새로운 메모리 공간에 독립적인 복사본을 만든다.복사된 객체는 독립적으로 존재하기 때문에 원본 객체가 삭제되어도 복사된 객체는 영향을 받지 않음결론얕은 복사 : 메모리 주소를 공유하며, 원본 객체와 복사본이 같은 메모리 공간을 참조한다. 이로 인해 메모리 관리에 주의가 필요하다.깊은 복사 : 각 객체가 독립적인 메모리 공간을 가지므로 메모리 누수나 잘못된 접근을 방지할 수 있다.

C++/개념정리 2024.12.30