목록C++ (25)
완숙의 블로그
#1 // // main.cpp // Lab #12 // // Created by 최완식 on 04/06/2019. // Copyright © 2019 최완식. All rights reserved. // #include #include using namespace std; int main(){ vector list{10, 20, 30, 40, 50}; int num; while(1){ cout > num; for(int i = 0; i < num; i++){ try{ cout
예외 처리 예외 처리를 사용하므로써 알고리즘이 마주할 수 있는 예외 상황에 대해 코드를 분리할 수 있다. 이 결과 알고리즘에 보다 집중할 수 있다. 에러를 만들어 보자. int main(){ vector v{1, 2, 3, 4} int num; cin >> num; cout > num; try{ cout
#1 // // main.cpp // Lab #11 // // Created by 최완식 on 28/05/2019. // Copyright © 2019 최완식. All rights reserved. // #include #include using namespace std; template void sort(vector& list){ int count = 0; while(count != 4){ for(int i = 0; i list[i+1]){ temp = list[i+1]; list[i+1] = list[i]; list[i] = temp; }else{ count++; } } } } template void print(const vector& lis..
for_each() algorithm 라이브러리에는 다양한 함수가 있지만, 그중에서 for_each() 함수에 대해서 알아보자. #include vector v{1, 2, 3, 4, 5, 6, 7}; 다음과 같은 벡터가 선언되어 있을 때, 각 요소의 값을 실제로 1 증가시키기 위해서는 어떻게 해야할까? 각각의 요소를 reference 해서 불러온 뒤, 증가시켜주면 될 것이다. for(auto& elem : v){ elem++; } 그런데, 만약 다른 자료형이라면, 이 것을 일일히 다 쳐줘야 한다. 그래서 for_each() 함수가 존재한다. 사용법 for_each(시작 주소값, 끝 주소값, 함수); 이때 특정 객체의 시작주소값, 끝주소값을 받아오는 것을 begin() end() 함수로 배웠다. 그리고, ..
functional library Lambda function 함수 안에서 부를 수 있는 Local function! 사실 정체는 객체이지만, 우리는 함수의 개념으로 갖다 쓴다! Usage [closure](입력 매개변수)->출력 type{내용} Local function 이기 때문에 만들어졌다가 리턴 후 사라진다. Example #include #include #include using namespace std; int evaluate(int(*func)(int, int), int x, int y){ return func(x, y); } int main(){ // sum: [](int x, int y)->int{return x + y;} cout int{return x + y;}, 2, 3) int{r..
Iterator 반복자는 generic 함수이다. 즉, 일반적인 프로그래밍을 가능하게 하기위해 만들어진 전역함수이다. 우리는 배열을 다루기 위해 vector, array, list와 같은 것들을 사용했다. 그런데, 이녀석들을 다루기 위해서는 이 세가지 객체에 어떤 method가 있는지 알아야 한다. 또한, 어떤 인풋이 들어오든간에, 클래스나 함수를 돌아가기 위해서는 특정 객체에 접근할 수 있는 일반적인 함수가 존재하는 것이 보다 편리하다. 그래서 Iterator 클래스를 만들고, 가장 많이 사용하는 몇개의 함수를 구현해놓았다. Method Iterator 객체에서 사용할 수 있는 메서드는 다음과 같이 7개이다. *iter iter++ iter-- iter1 == iter2 iter1 != iter2 be..
List 이제껏 vector container 에 대해서 집중적으로 사용했는데, list container 역시 vector와 마찬가지로 많이 사용된다. Vector 장점 : search가 빠르다. 단점 : pop/ push 가 느리다. => 요소의 내용이 바뀔일이 많이 없으면 Vector 사용 List 장점 : search가 느리다. 단점 : pop/ push 가 빠르다. => 요소의 내용이 바뀔일이 많으면 List 사용 기본적으로 가지는 method는 같기 때문에, 쉽게 사용가능하다. #include #include using namespace std; int main(){ list myList{1,2,3,4}; char command; int inputVal; bool finished = false..
Generic Programming vector 컨테이너를 보게되면, 다음과 같이 선언하게 되는데, vector v(3, 0); vector v(3, 10.3); 자료형을 추가적으로 정해서 벡터 컨테이너를 만들 수 있게 되어있다. 벡터 역시 클래스로 구현이 되어 있을 텐데, 이때, 벡터라는 녀석을 생각해보면 여러개의 자료형에 대해 결국은 같은 행위, 즉, 동적 배열을 할당 하는 역할을 담당하고 있다는 것을 알 수 있다. 그렇다면 결국은 함수 오버로딩 으로 구현이 되어 있다는 소리이다. bool less_than(int a, int b){return a < b;} bool less_than(double a, double b){return a < b;} 위와 같이, less_than 함수는, 다른 자료형에 ..