IT/C++ (7) 썸네일형 리스트형 cpprest , rest 라이브러리로 C++로 http 통신 구하기 1. cpprestsdk 를 다운받기 위해 Window용 vcpkg를 다운 받아야합니다. 참고 : https://upglay.tistory.com/12 이 블로그를 따라서 vcpkg를 다운 받아 봅시다. window 8,7,10 이상의 os가 필요하고 visual studio 2015, 2017이 필요합니다 Git을 설치해야합니다 Cmake를 설치해야합니다. 1. vcpkg 설치 (윈도우 기준) https://upglay.tistory.com/12 로 들어가서 Zip 파일로 파일을 내려 받습니다. 2.C 드라이브에 vcpkg라는 폴더를 만들어 그 곳에 다운 받은 Zip압축을 풀어줍니다. 3. CMD 창으로 가서 c:\vcpkg\boostrap-vcpkg.bat를 치면 설치가 시작됩니다. 여기까지 됐으면 .. [C언어] Printf 의 %lf, %f와 Scanf의 %lf, %f의 차이 double형은 scanf를 할 때, 왜 %lf를 해줘야 하고 printf를 할 때는 %f 로 해주어야 하나? printf 는 포인터가 아닌 값을 받기 때문에 파라미터 리스트에서 각각의 데이터 크기를 알 수 있습니다. 포맷 문자가 f 이고 파라미터 크기가 4면 float로 처리하고 포맷 문자가 f 이고 파라미터 크기가 8이면 double로 처리하게 됩니다. scanf는 입력을 받아야 하니까 모든 파라미터를 포인터로 받게 되죠. 하지만, 포인터는 그 주소값 4byte만 전달될 뿐 해당 포인터가 가리키는 자료형이 무엇인가는 전달되지 않습니다. 즉, scanf가 전달받는 포인터는 void타입 포인터라고 보면 됩니다. 그렇기 때문에 float와 double을 f와 lf로 구분해줘야 하는 거죠. 물론 사용자가 만.. [C++] sort algorithm 정리 및 예시 0. sort algorithm sort 알고리즘은 헤더파일에 속해있습니다. sort(start, end)를 이용하여 [start, end) 의 범위에 있는 인자(element)를 오름차순(default)으로 정렬해주는 함수 입니다. start를 포함하고 end를 포함하지 않는 구간. (iterator를 생각하면됩니다.) quick sort(퀵 정렬)을 기반으로 함수가 구현되어있어, 평균 시간복잡도는 n log n 입니다. 따로 quick sort를 구현할 필요 없이 C++ STL에서 제공해주는 sort 함수를 이용하면 편리하게 정렬 할 수 있습니다. 1. 원형 및 사용법 원형 template void sort(T start, T end); template void sort(T start, T end, .. Array, Vector (정적배열, 동적배열) What is Array? 직접적으로 값을 순차적으로 매핑한다. C언어에서 오래된 기술이고, 객체가 아니다. 처음에 배열의 크기를 지정하고 선언하는 정적 배열(static Array)이 있고, 배열의 크기를 유동적으로 조절할 수 있는 동적 배열(Dynamic Array)이 있다. 배열도 함수 포인터와 마찬가지로, 특정 배열을 내가 선언하게 되면 배열의 이름으로 선언해준 변수는 포인터 이다. 정적배열 (Static Array) 메모리 공간에서 배열 원소의 배치 #include using namespace std; int main() { int ary[3] = {1, 2, 3}; cout ASCII 코드표 유니코드로 프로그램을 작성하는 습관을 기르는 것이 더 좋지만 현재에도 ASCII는 많이 쓰이고 있습니다. 그리고 가끔 ASCII코드가 필요할 때가 있습니다. 기본적으로 대문자 A는 65, 소문자 a는 97이라는 것 정도는 알아두면 좋습니다. 그리고 97에서 65를 뺀 32값은 공백(Space)입니다. 아스키 문자집합은 영미권에서 문자를 표현하기에 적합한 문자입니다. 영어의 몇 개 안되는 문자를 표현하기에는 1바이트만 갖고도 충분하기 때문이죠. 실제는 7비트만 사용되서 보통 128개의 문자를 사용합니다. 그 중에는 제어를 위한 문자도 포함이 되어 있습니다. 아스키 코드로는 다양한 문자들을 수용할 수 없기 때문에 유니코드를 사용하는 것이 좋습니다. 아스키 코드를 그대로 가져가는 유니코드 방식으로 UTF-8같.. C++STL -> string string 추상(abstraction) string은 인덱싱이 가능한 문자들의 시퀀스이다. 비록, string이 vector의 서브클래스는 아니지만, 대부분의 vector 연산들을 string에 적용할 수 있다. 게다가, string은 vector 연산뿐만 아니라 유용하고 강력한 고수준 연산들을 추가로 제공한다. 표준 라이브러리의 string은 실제로는 basic_string 템플릿 클래스이다. 템플릿 인자는 string 컨테이너를 구성하는 문자의 타입을 나타낸다. 이렇게 함으로써, 표준 라이브러리는 일반적으로 많이 쓰이는 8비트 아스키 문자들뿐만 아니라 16비트 광폭 문자(wide character)들과 같은 것들도 다룰 수 있는 기능을 제공한다. string과 wstring(광폭 string) 데이.. 소멸자 소멸자(destructor) C++에서 생성자는 객체 멤버의 초기화뿐만 아니라, 객체를 사용하기 위한 외부 환경까지도 초기화하는 역할을 합니다. 따라서 객체의 수명이 끝나면 생성자의 반대 역할을 수행할 멤버 함수도 필요해집니다. 이러한 역할을 하는 멤버 함수를 소멸자(destructor)라고 합니다. 소멸자는 객체의 수명이 끝나면 컴파일러에 의해 자동으로 호출되며, 사용이 끝난 객체를 정리해 줍니다. C++에서 클래스 소멸자의 이름은 해당 클래스의 이름과 같으며, 이름 앞에 물결 표시(tilde, ~)를 붙여 생성자와 구분합니다. 즉, Book 클래스의 소멸자는 ~Book()이라는 이름을 가지게 됩니다. 이러한 소멸자는 다음과 같은 특징을 가집니다. 1. 소멸자는 인수를 가지지 않습니다. 2. 소멸자는 .. 이전 1 다음