프로그래밍/C++ 26

[C++]String 클래스 멤버함수 간단 요약

더보기 string str1 = "MyName"; string str2 = "SuperRunner"; at(index) : 해당 위치 문자를 반환 operator[index] : 배열처럼 접근, 해당 문자를 반환, 1번 보다 빠르다. front() : 맨 앞 인자 반환 str1 .front() -> M을 반환 back() : 맨 뒤 인자 반환 str1 .back() -> M을 반환 size() : string 사이즈를 반환 str1.size() -> 6 length() : string 길이를 반환 5 번과 같다. capacity() : 할당된 메모리 크기를 반환. vector의 capacity와 마찬가지로 메모리할당을 여유롭게 한다. resize() 더보기 함수 원형 : void resize (size_..

프로그래밍/C++ 2022.01.05

[C++] 람다식

C++람다식 사용이유와 사용 방법 기본문법 [] () -> int {} [] : 캡쳐블록 ( 사용시 외부변수를 캡쳐해 람다의 몸통에서 사용가능하다.) () : 전달인자 -> 반환타입 {} : 함수 몸통 여기서 캡쳐블록 [] 와 전달인자. ()와 리턴 타입{}을 생략할 수 있다. 사용 이유 함수객체와 다르게 클래스 선언을 할 필요가 없다. 함수포인터와는 다르게 인라인화가 가능하다. 람다의 캡쳐부분 기본적으로 클래스의 멤버 변수를 람다의 바디 안에서 사용했다면, 이는 this->가 생략되어 있다. & : 모든 외부변수 참조 &, initialize : 모든 외부변수 참조 및 초기화 가능 = : 모든 외부변수 복사 ( =, intiailize : 모든 외부변수 복사 및 초기화 가능 [localVar] : 특정..

프로그래밍/C++ 2021.12.22

[c++] 구조체, 구조체 배열, 구조체 포인터, 패딩바이트, typedef

구조체란 지금까지 썼던 자료형을 일반 자료형이라고 한다. 구조체는 사용자 정의 자료형에 속한다. 일반적인 생김새는 다음과 같다. 구조체 : 임의의 자료형 요소를 조합하여 다시만든 자료구조 이다. 구조체 이름앞의 xyz를 구조체 태그 라고 한다. 안에 선언된 걸 구조체 멤버라고 한다. struct 구조체 명 { 자료형들 } 이런식으로 안의 구조체 멤버들을 선언을 한다. 여기서 주의해야 할 점은 char 형의 경우 char* 형으로 선언해주면 안되고, 배열의 크기를 명시해줘야지 에러가 나지 않는다. 구조체 선언 및 초기화 아래와 같이 구조체 변수를 선언 및 초기화 할 수 있다. 각각의 자료형에 맞게 넣어 줘야 한다. 다 넣어 주지 못한 멤버는 자동으로 0으로 초기화 된다. 구조체 멤버 닷 연산자를 사용하여 ..

프로그래밍/C++ 2021.09.30

[C++] 2차원 배열, 배열 포인터, 배열 초기화, 배열 매개변수

2차원 배열 기본형태 배열은 기본적으로 n차원까지 가능하다. 보통은 너무 복잡해서 3차원도 잘 안쓴다. int iArr2D[Y][X] = {1,2,3,4,5,6}; Y는 행을 X는 열을 나타낸다. int iArr[2][3]; --> 3칸짜리 배열이 2개 즉, iArr[3]이 2개 (2행3열) 바깥이 행에 접근한다. 맨 아래의 그림을 참고하면 이해하기 쉽다. 3차원 배열 기본형태 배열의 초기화 아래 그림처럼 2가지 방법으로 초기화가 가능하다. 이중 for문을 사용하여 초기화 진행 2차원 배열의 포인터 1차원 배열포인터 int* ptr = iArr2D 2차원 배열포인터 자료형(*변수명)[열의 크기] int(*ptr2D)[3] = iArr2D; 더보기 2차원배열의 원소는 1차원 배열을 뜻한다. 따라서 2차원배..

프로그래밍/C++ 2021.09.24

[C++] 1차원 배열, 배열 포인터, 배열 초기화, 배열 매개변수

배열의 기본형태 자료형 변수명[원소갯수] = 초기값 배열 : 배열(array)이란 연관된 데이터를 모아서 통으로 관리하기 위해서 사용하는 데이터 타입이다. 변수가 하나의 데이터를 저장하기 위한 것이라면 배열은 여러 개의 데이터를 하나의 변수에 저장하기 위한 것이라고 할 수 있다. 여러 개의 데이터를 하나의 변수에 담아서 관리할 수 있는 방법 배열의 초기화 int iArr1[5] = {}; 모두 0초기화 int iArr2[5] = {1,2,3,4,5}; 각 원소에 값 삽입형태 좌측부터 0번째 배열에 값이 삽입 int iArr3[5] = {1,2,3}; 채우지 않은 부분은 각 전부 0 초기화 int iArr4[] = {1,}; 배열 크기가 5개라고 인식하지 못함. 배열 갯수 1개로 인식 int iArr5[]..

프로그래밍/C++ 2021.09.24

[C++]포인터 기본 개념

포인터란? 포인터도 그냥 변수이다. 주소값을 저장하는 변수이다. 포인터의 형태 자료형* 변수명 = 값; 여기서 * 은 에스크리터 연산자라고 부른다. 에스크리터 연산자는 포인터 변수를 선언하는 용도로 사용된다. int* ptr; int * ptr; int *ptr; 에스크리터 연산자를 어디에 붙이나 상관은 없으나 통일성이 있어야 한다. nillptr int* ptr = 0; int* ptr1 = NULL; int* ptr2 = nullptr; 0은 정수이므로 잘 쓰지 않고, 요즘은 nullptr을 많이 사용한다. float f = 0.f; int* ptr = &f; 이렇게 쓰면 안된다. 포인터 변수에 주소값을 담으려면 포인터 변수를 선언할 때 명시한 자료형과 일치하여야 한다. 즉, int* ptr = &f..

프로그래밍/C++ 2021.09.24