코드 1 코드 2 풀이 설명 sort 함수를 사용하여 입력 벡터를 정렬합니다. unique 함수를 사용하여 중복된 요소를 벡터의 맨 뒤로 이동시키고, 중복되지 않은 요소들의 시작점(첫 번째 중복 요소의 위치)을 반환합니다. 이 때 반환된 값에서 begin을 빼줌으로써 중복되지 않은 요소의 개수를 계산할 수 있습니다. 반환된 중복되지 않은 요소의 개수와 nums.size() / 2 중 작은 값을 반환합니다. nums.size() / 2는 최대로 선택할 수 있는 요소의 개수이며, 중복되지 않은 요소의 개수가 이를 초과할 수 없습니다.
Vector 배열과 거의 비슷하지만, 메모리를 잡아주지 않아도 된다는 점에서 차이가 존재합니다. 쉽게 생각해서, 배열 동적할당의 상위호환이라고 생각하면 쉽습니다. 배열 동적 할당은 포인터 사용하셔도 되고, 자세한 내용은 필자가 따로 포스팅한 c++ 객체 part를 확인해보시면 더욱 쉬울 것 같습니다. header #include 생성 assign C++에서 assign은 객체에 새로운 값을 할당하는 멤버 함수입니다. 클래스에 따라 구체적인 문법과 동작이 달라지며, 예를 들어 std::string 클래스의 assign 함수는 문자열 객체에 새로운 값을 할당합니다. 원소 참조 원소 추가 ~ 원소 제거 크기 연산 여기까지가 벡터 Stack header #include 추가 해줌. 즉 선언해야 사용가능. 생성 stack st; // 생성
중간고사 대비 c++ 실습 & 오픈챌린지 위주 복습 왜 에러가 뜨는 것인지 ? PRIVATE에 넣어서 접근을 못하나? 아닐텐데, 혹시나 몰라서 말고 퍼블릭에 초기화를 해줬는데 ..? 해결되지않는다. 에러는 식별자 에러. 식별자에 대해 다시한번 생각해보고, 코드를 확인했다. void show(){} 아.. 바보구나, ㅋㅋㅋ Oval::void show() 를 해줘야한다. 왜냐하면 생성자 함수에 선언을 OVAL.h에 하고, 생성자 구현은 oval.cpp 에 하려고 했는데, 어느 클래스인지 정확하게 앞에 식별자를 안해줘
객체 포인터 부분. 중요한 부분이라 가독성을 위해, 따로 포스팅하게 되었습니다. 객체 포인터 객체에 대한 포인터 c 언어의 포인터와 동일 객체의 주소 값을 가지는 변수 포인터로 멤버를 접근할 때 객체포인터 -> 멤버 예제 4-1, 객체 포인터 선언 및 활용 객체 배열, 생성 및 소멸 객체 배열 선언 가능 기본타입 배열 선언과 형식이 동일함 int n[3]; // 정수형 배열 선언 Circle c[3]; // Circle 타입의 배열 선언 객체 배열 선언 객체 배열을 위한 공간 할당 배열의 각 원소 객체마다 생성자 실행 c[0]의 생성자, c[1]의 생성자, c[2]의 생성자 실행 매개 변수 없는 생성자 호출 매개변수 있는 생성자를 호출할 수
명품 C++ 실습문제 Chapter3 3-1 3-2 (1) (2) 3-3 3-4 또는, 멤버 변수와 생성자의 매개변수 이름이 동일하므로 this 포인터를 사용하여 명확하게 구분해준 것 3-5 (1) (2) 3-6 header 3-7 main header 3-8 header (1) header(2) 3-9 header main 3-10 (1) (2) 그냥 분리해주고, 각 헤더 파일에 아래의 내용만 추가되면 됩니다.
Cplusplus 를 처음부터 복습 하면서, 이땐 그냥 그렇구나 라고 넘겼지만, 지금은 "왜?" 라는 생각이 드는 것들이 있을 수도 있고, 시험 전에 기본 개념에 대해서, 기본적이면서 필수적인 부분을 한번 더 상기시키기 위해 포스팅 하였습니다. 글 형식이 자유로워 읽기엔 다소 불편할 수 있습니다,,, 제가 공부할 때, 필요한 부분만 포스팅 되었으며, 제가 이해한 내용을 바탕으로 작성되었습니다, 혹여 다르게 해석되거나 틀린 부분이 있다면 댓글로 피드백 부탁드리겠습니다. 포인터, 포인터란 주소를 가리킴. *를 사용해서 주소를 가리킴. 예, int b =10; int* a= &b; // b가 저장된 메모리의 주소를 가리킴. > 쉽게 설명하자면 int b 로 초기화하면 b 라는 변수에는 숫자 10이 저장됩니다. 즉, 변수에 저장된다는 것입니다. 근데 이 변수는 정수형으로 지정해줬으며, 메모리에 저장이 되어야합니다. 그래야 사용할 수 있으니까요. 즉, 변수는 n 이지만
명품 Cplusplus 프로그래밍 실습 문제 2-16 3-9 3-10 (1) (2) //Add.h //Add.cpp //Sub.h //Sub.cpp //Mul.h //Mul.cpp //Div.h //Div.cpp //main.cpp 4-9
7~9 : 클래스와 활용 Class and Object 분할 컴파일 구조체와 함수의 원형은 헤더파일로 분류할 수 있습니다. 헤더파일에는 주로 함수 원형 define이나 const를 사용하는 기호 상수 구조체 선언 클래스 선언 템플릿 선언 인라인 함수 헤더 파일분리, 헤더 파일 부분에 struct.h 파일 생성해주고, 아래와 같이 코드 작성해주면 됨. (전처리자에 작성함) 소스 파일 부분에, fun.cpp 파일로 만들어주고 아래와 같이 분리해준다. 이렇게 되면 본체(몸통)엔 아래와 같은 코드가 된다. 프로그램의 규모가 커질수록 관리하기 쉬워짐. 헤더 파일을 여러 파일에 포함시킬 때에, 반드시 단 한 번만 포함시켜야합니다. 앞서 말했던 상황의 불상사를 막기 위해서, c++ 에서는 #ifdef STRUCT 를 사용하고, 마지막 줄엔 #endif를 사용해줍니다. 이
5~6 : 함수와 활용 Function c++에서 함수를 사용하려면 선행되어야 하는것들 함수 정의 제공 함수 원형 제공 함수 호출 함수란, 리턴값이 있는 타입 리턴값이 없는 타입 으로 나뉩니다. >여기서 리턴값이란, 자신을 호출한 함수에게 되돌려 주는것 파라미터, 매개변수 사용자의 필요에따라 갯수를 지정할 수 있음. parameter,argument 파라미터 1개 매개변수 2개 함수와 배열 c++에서 배열 이름을 그 배열의 첫번째 원소의 주소로 인식 배열의 이름이 배열의 첫번째 원소의 주소를 가리킴. 파라미터에 배열의 시작주소, 배열의 사이즈 || 배열의 끝 함수와 구조체 재귀함수 재귀 호출 : c++에서 함수는 자기 자신을 호출할 수 있습니다. 재귀함수는 보통 if문과 자주쓰임 예시, 함수를 지시하는 포인터 어떠한 함수에 함수의 주
C++ 기본적이면서 필수적인 것들을 정리해보겠습니다. 질문의 정답은 맨 아래에 기재해놨습니다. 1~4 : 프로그래밍기초 5~6 : 함수와 활용 7~9 : 클래스와 활용 1~4 chapter Dealing with Data // 데이터 처리 C C++ c++ 같은 경우, C++에서 함수를 사용하고자 한다면, 반드시 그 함수의 원형을 미리 정의하여야 합니다. C++에서 ; 는 종결자의 역할(한 문장의 끝) endl 줄바꿈을 의미 << 데이터의 방향 원래는 std::cout를 써야하는데 using namespace std; 를 사용해줌으로써 std:: 를 안쓰고 cout만 사용 가능. 이렇게 사용하면 에러 발생 출력문 작성시 각각
C++에 초기 설정 및 깃허브 연동중 에러가 발생할 수 있을법한 과정을 웬만해선 다 포스팅해봤습니다. VisualStudioCode 에서 발생할만한 에러 & 깃허브 연동 및 업로드 방법에 대해서 많이 겪어보았고, 정말 여러가지 경우의 수에 대해서 보다 자세하게 작성하게 되었습니다. 해당 글로 도움 되시면 좋겠다는 기쁜 마음에 포스팅했습니다. (반복되는 내용 및 순서가 체계적이지 않다는 것은 참고바랍니다) 맥북 VSC 다운 및 설정 (다운로드바로가기) 맥북은 VS에 c++이 지원하지 않습니다. 따라서 VSC를 다운 받아서 확장자 라이브러리를 다운 받아주면됩니다. (VSC 맥os 다운 -> 확장자에서 C/C++ 다운 - > Code Runner 다운) 이렇게도 안된다면, 아마 json 파일에 문제가 있는 것 같은데 이런 경우 settings.json 파일에서 추가해주면 됩니다. json 파일은 우측상단에 보이는
포인터란? 생각보다 이건 단순함. * asterisk 란, 2가지의 큰 의미를 가짐. 포인터를 선언할 때 사용. 해당 주소에 값이 접근하는 용도로 쓰임. 1번 return 0; // int 형으로 작성시 return 값 설정 2번 3번 4번 5번 6번 7번 8번
포인터 배열과 문자열 여러 개의 포인터를 다음과 같이 배열로 종합할 수 있다. 로 쓰면 2개의 포인터 p[0], p[1]이 배열 요소로서 확보 됩니다. 문자열을 포인터 배열로 출력 포인터 배열과 문자열 (수정 전, 비교하기) (후) 를 계산  > ????????? 뭐야 이게, 라고 생각했지만 바로 바보같은 코드임을 깨우쳤습니다. ㅋㅋㅋㅋ 입력을 안받으면 무한 반복되는데... 또한 i 값 초기화도 안했... 밤샘 했더니 머리가 안돌아가네요 ㅜ ㅎㅎ c언어 연산자 대입 연산자 =
구조체 구조체란, 서로 다른 데이터형을 갖는 데이터를 하나의 단위로 참조할 수 있도록 그룹처럼 만드는 것이다. 구조체형도 열거형과 똑같이 윌가 작성 가능한 사용자 정의형의 하나이다. 예를들면, int 학번, char 이름, 합계 int, 평균 float 등 다른 형의 값을 종합해서 개인 성적표를 나타내는 형으로 할 수 있는 것이다. 이러한 데이터들은 서로 묶여져 있지 않기 때문에 다루기 불편, 구조체형 배열은 여러개의 같은 데이터를 하나로 묶는 동질형 데이터형이고, 구조체는 서로 다른 데이터형을 하나로 묶는 이질형 데이터형인 레코드와 같다. 구조체의 선언 c는 구조체의 선언에 의해 여러 종류의 데이터 형을 1개로 종합하여 이것을 구조체형이라고 부른ㄴ 1개의 데이터 형으로 정의할 수 있다. 구조체를 이용할 경우 어떤 구성의 구조체를 이용할 것인가를 선언해야한다. 구조체는 struct라는 지시어를 사용하여 선언하며,
필자는 군대 다녀온 후 c언어를 포맷해버렸기 때문에, 시스템 프로그램을 학습하기 위해서는 c의 기본이자 핵심인 포인터를 따로 학습하며 기억하려고 이렇게 포스팅 하게 되었습니다. > (참고)필자가 누차 적는 데엔 그만큼 중요해서 아는 것은 더욱 확실하게 외워두고, 모르는 것은 적으면서 외우려고 하는 것입니다. 百聞而不如一作 == 백문이 불여일타 포인터 메모리에 존재하는 데이터의 주소값을 가짐 주소를 가지고 주소로 접근 (명사적의미 : 점, 동사 : 가리키다) 가리키는 녀석. 데이터, 즉 메모리 주소를 갖는다. 변수와 메모리 자료형에 따라 할당된 메모리 공간의 크기가 다름
필자는 군대 다녀온 후 c언어를 포맷해버렸기 때문에, 시스템 프로그램을 학습하기 위해서는 c의 기본이자 핵심인 포인터를 따로 학습하며 기억하려고 이렇게 포스팅 하게 되었습니다. > (참고)필자가 누차 적는 데엔 그만큼 중요해서 아는 것은 더욱 확실하게 외워두고, 모르는 것은 적으면서 외우려고 하는 것입니다. 百聞而不如一作 == 백문이 불여일타 포인터 메모리에 존재하는 데이터의 주소값을 가짐 주소를 가지고 주소로 접근 (명사적의미 : 점, 동사 : 가리키다) 가리키는 녀석. 데이터, 즉 메모리 주소를 갖는다. 변수와 메모리 자료형에 따라 할당된 메모리 공간의 크기가 다름