포인터
·
C++/Basic
int *pt = new int; //int형을 저장할 메모리를 대입 new를 이용하여 포인터를 선언한다. delete pt; //delete로 메모리를 해제 할당되어 있는 메모리를 해제해준다. new로 메모리를 사용한 후 반드시 delete를 사용하여 메모리를 해제해주어야 한다. int *ps = new int; delete ps;//O delete ps;//X 이미 delete가 완료된 메모리는 delete를 연속해서 사용 할 수 없다. delete는 new로 대입한 메모리를 해제할 때에만 사용해야 한다. int *ptt = new int[10]; // 동적배열 생성 //*ptt는 배열의 첫번째원소를 가르킨다. *ptt == ptt[0] //ptt는 배열의 첫번째원소의 주소이다. ptt == &ptt..
char, string
·
C++/Basic
151~161 string은 연산자를 이용가능하다. string a = {"abc"}; string b = {"def"}; string c; c = a + b; //c가 abcdef가 된다. string ab[2] {"abc", "def"}; cout
vector, pair, tuple을 vector에 넣기
·
C++/Basic
#include #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); vector number; vector number2; vector number3; vector number4[3]; int N; cin >> N; for (int i = 0; i > x >> y; number.push_back({ x, y }); number2.push_back({ x, y }); number3.push_back({ x, y, y }); } for (int i = 0; i < N; i++) { cout
상수(const)
·
C++/Basic
변수와는 달리 상수인 const로 지정을 하면 지정된 값을 절대 바꿀수 없다. 값의 변경이 이뤄나선 안되는 경우 주로 사용한다. const int xc = 23; int yc = 32; xc = yc;//변경할 수 없는 수에 대입할 수 없다. 이와 같이 넣으려고하면 오류가 난다. 포인터에서는 두가지의 경수가 있다. int yc = 32; int zc = 45; const int* xcp = &yc; int* const ycp = &yc; xcp = &zc; *xcp = zc;//성립 x ycp = &zc;//성립 x *ycp = zc; 위의 경우는 c는 정수형 포인터이며, 앞에 const가 붙음으로써, c는 상수만을 가리키는 포인터라는 의미가 된다. 따라서, c가 가리키는 대상은 변경이 가능하지만, 가리..
공용체(union), 열거체(enum)
·
C++/Basic
173~179 union 서로다른 데이터형을 한번에 하나씩만 보관 union one4all { int int_val; long long_val; float float_val; }; one4all ss; ss.int_val = 3; cout