## // C/C++/STL 기초
[https://docs.google.com/document/d/1xrhb-6Vm5_0zd2iImbdg_4kN2cTnY-ZSzyrFAavwABI/edit?usp=sharing](https://docs.google.com/document/d/1xrhb-6Vm5_0zd2iImbdg_4kN2cTnY-ZSzyrFAavwABI/edit?usp=sharing)
Algorithm Note - 1. C/C++/STL
// C/C++/STL 기초 ------------------------------------------------------------------------------------------ C언어 //1.1 포멧 문자열 int %d 10진수 %x 16진수 %o 8진수 long long %lld %I64d char %c char* %s float %f double %lf long double %Lf //1.2 TestCase 또는 EOF 받기 //Tets
docs.google.com
2. C++ 입출력 기본
//2.1 한줄 다 입력 받기
getline(cin,s); // s는 stirng 형으로
//2.2 출력시 소수점 처리하기
#include<iomanip>
setprecision(5)
fixed
eg)
double f = 3.1415926535;
cout<<setprecision(5)<<f; //앞에서 5번째까지 출력(반올림적용)
cout<<fixed<<setprecision(5)<<f; //소수점 자리부터 5번째 가지 출력(반올림 적용)
//2.3 출력 속도비교
cout<<i<<endl; //4272msec 개행 + 스트림을 flush하기때문에 많은 시간이 걸린다.
cout<<i<<'\n'; //36msec
printf("%d\n",i); //20msec
//2.4 cin/cout 속도 올리기 (scanf/printf와 혼용하지 말것!)
main바로 다음에
cin.tie(NULL); cout.tie(NULL);
ios_base::sync_with_stdio(false);
//2.5 C++11 의 auto
vector<int> d;
for(auto it = d.begin(); it != d.end(); it++){...}
for(auto& k:d){...}
//2.6 Range based for
vector<int> a = {1,2,3,4,5};
a.size(); // element수 반환 unsinged long long 형태
for(auto k : a){...}//값 복사 방식으로 순환
for(auto& k : a){...}//참조 방식으로 순환 // 더 좋은 성능
//2.7 C 스타일,C++ 스타일 의 string
const char cstr[] = "string"; // foreach돌리면 7번
string str = "string"; // foreach 돌리면 6번
// C스타일의 문자열에는 null이 포함되어 있기 때문 !!!
//2.8 C++ 람다 함수 Lamda Function 익명 함수(함수의 형태인데 이름이 없음)
구성 : [캡처](함수 인자){함수 내용}
eg) cout<<[](int x,int y){return x+y;}(1,2)<<"\n";
eg) auto sum = [](int x,int y){return x+y;};
sum(1,2);
eg)
auto f = [&](){..} //외부변수 모두 참조하려면 캡처에 &쓰기
auto f = [&x,y](){...} //외부면수 x만 참조,y는 값 복사
auto f = [&x,y]() mutable {...}// 하지만 잘 안됨..(?)
eg)
#include<functional> 에
function<int(int,int)> sum = [](int,int){....}
function<int()>
function<void()>
등등의 자료형 하지만 auto 써라.
eg) 람다로 recursion 피보나치 구현 또는 vector에 람다 넣고 foreach돌리면서 사칙연산 해보기~
DOS IMPACT - WEB Developer
KIM DO YOUNG

WEB : REACT JS | REACT NATIVE | GraphQL PRISMA

'Algorithm > Lecture' 카테고리의 다른 글
알고리즘 풀이를 위한 C/C++/STL 기초 정리 - C++ string 편 (0) | 2020.01.23 |
---|---|
알고리즘 풀이를 위한 C/C++/STL 기초 정리 - STL(2)편 (0) | 2020.01.23 |
알고리즘 풀이를 위한 C/C++/STL 기초 정리 - STL(1) 편 (0) | 2020.01.23 |
알고리즘 풀이를 위한 C/C++/STL 기초 정리 - C언어편 (0) | 2020.01.23 |
알고리즘 C++ vs Code 환경 설정 하기. (0) | 2020.01.23 |