c++
-
stl vector mapc++ 2021. 3. 9. 20:24
#include #include #include #include using namespace std; int main() { vector a = { {"yellowhat", "headgear" }, { "bluesunglasses", "eyewear" }, { "green_turban", "headgear" }};//2차원 벡터 map arr; arr["sta"]++;//key sta value +1; arr["sta"]++;//key sta value +1; cout
-
고정너비정수c++ 2020. 1. 14. 12:27
고정 너비 정수 환경에 따라 같은 int가 4byte로 있는경우도 2byte로 있는 경우도 있다 , 항상 같은 값을 가지게 하기 위해 등장한것이 고정 너비정수이다 #include #include #include int main()// { using namespace std; int16_t i(5);//16bits형 자료형 i에 5를 대입 2bytes = short형 = 5 즉 나는 2바이트를 사용해서 i를 만들겠다라고 몇바이트를 사용할지 고정함 int8_t j = 65;//8bit형 자료형 j에 65대입 1bytes = char형 = A 즉 나는 1바이트를 사용해서 j를 만들겠다고 몇바이트를 사용할지 고정함 cout
-
전처리기c++ 2020. 1. 13. 20:34
전처리기(preprocessor)는 프로그램을 컴파일할 때 컴파일 직전에 실행되는 별도의 프로그램이다. 전처리기가 실행되면 각 코드 파일에서 지시자(directives)를 찾는다. 지시자(directives)는 #으로 시작해서 줄 바꿈으로 끝나는 코드다. 전처리기는 컴파일러가 실행되기 직전에 단순히 텍스트를 조작하는 치환 역할을 하기도 하고, 디버깅에도 도움을 주며 헤더 파일의 중복 포함도 방지해주는 기능을 가진다. #define(매크로) #define PI 3.14라고 가정한다면 #define을 전처리기 지시자 라고 하며,PI를 매크로 상수 라고 한다 #include using namespace std; #define MY_NUMBER 9//매크로 MY_NUMBER이라는 문자를 만나면 9로 바꿔버림 (..
-
namespacec++ 2020. 1. 13. 19:59
namespace는 같은 이름을 충돌하지 않게 하는 문법이다. 수 많은 라이브러리를 include했을때 서로 다른 라이브러리에 같은 이름의 형식이나 개체가 있을 때 충돌하지 않게 namespace로 감싸 충돌하지 않게 한다. #include using namespace std; int add(int a, int b)//a팀의 add { return a + b; } int add(int a, int b)//b팀의 add { return a + a + b; } int main() { a(3, 4); } 예를들어 위와 같이 개발 회사에서 하나의 프로젝트를 수행하기위해 개발a팀과 b팀이 파트를 나눠서 작업물을 수행하고있다. 마감 날짜가 나가와 각 팀의 작업물을 통합하려고 한다 그런데 이때 a팀과 b팀에서 add..
-
헤더 가드c++ 2020. 1. 13. 18:29
함수를 두 번 이상 정의하는 프로그램은 컴파일 에러가 발생한다 #include using namespace std; void doSomething() { add(1, 2); } int add(int a, int b) { return a + b; } int main() { doSomething(); return 0; } 다음과 같은 소스 파일이 있다. 이때 add함수와 doSomething 함수를 헤더파일로 만들어서 include해서 사용하겠다. int add(int a, int b) { return a + b; } #include "add.h"; void doSomething() { add(1, 2); } #include #include "new.h"; #include "add.h"; using name..
-
모두의 약수c++ 2020. 1. 3. 14:59
자연수 N이 입력되면 1부터 N까지의 각 숫자들의 약수의 개수를 출력하는 프로그램을 작성하 세요. 만약 N이 8이 입력된다면 1(1개), 2(2개), 3(2개), 4(3개), 5(2개), 6(4개), 7(2개), 8(4 개) 와 같이 각 숫자의 약수의 개수가 구해집니다. 출력은 다음과 같이 1부터 차례대로 약수의 개수만 출력하면 됩니다. 1 2 2 3 2 4 2 4 와 같이 출력한다. #include using namespace std; int division(int a) { int result = 0; int i; int num = a; for (i = 1; i > number; for (int i = 1; i
-
인라인함수c++ 2019. 12. 29. 12:44
이 부분은 책으로 공부 할 때 잘 이해가 안가는 부분이어서 구글링을 통해 확실히 학습하였다. 인라인 함수 프로그램의 실행 속도를 높이기 위해 추가된 기능이며 c언어의 매크로 함수와 비교된다. 일반함수와 인라인 함수호출의 차이가 뭔지 알아보겠다. 일반 함수 일반 함수 호출 방법은 프로그램 실행 중 함수를 실행하면(2) 해당 함수의 주소로 점프했다가(3) 함수의 처리가 종결되면(4) 다시 원래 자리로 돌아온다(5) 이렇게 함수로 이동했다가 복귀하기 때문에 함수를 사용하는데 시간이 다소 많이 걸린다. 인라인 함수 인라인 함수는 컴파일된 함수 코드가 프로그램의 코드 안에 복제하여 직접 삽입되어진다 즉 개발자나 사용자의 눈에는 보이지 않지만 add함수가 복제되어 main함수의(2)에 그대로 붙어넣어져있는것이다. ..
-
상속 연습문제c++ 2019. 12. 28. 17:23
1. 다음과 같은 기본 클래스가 주어져있다. class area_cl{ public: double height; double width; } 이 클래스에서 area_cl을 상속받는 box와 isosceles라는 두 개의 파생 클래스를 생성하여라. 상자,이등변 삼각형의 넓이를 각각 반환하는 area()라는 함수를 각 클래스에 추가시켜라 , 매개변수가 있는 생성자를 사용하여 height와 width 를 초기화하여라. #include using namespace std; class area_cl { public: double height; double width; }; class box :public area_cl { double extent; double depth; public: box(double h,d..