본문 바로가기

stl5

[C/C++] boost libraries C++ 은 복잡하고 방대한 언어이다. STL 이라는 표준 라이브러리를 제공하지만 여전히 부족하다. 이를 보완하기 위한 라이브러리가 boost libraries 이다. libraries라는 이름에서부터 느낄 수 있듯 boost 자체도 매우 방대하고 또 사용하기 어렵다. 주로 무엇을 보완하기 위해서 사용할까? shared_ptr boost의 존재보다 더 유명한 클래스였지만 C++11에 std::shared_ptr이 포함되어 사용할 수 있다. C++11 환경을 사용하지 못한다면 대안으로 사용가능하다. ex) shared_ptr을 사용하여 자원관리를 한다. shared_ptr이 파괴될때 fclose가 호출되기 때문에 파일 포인터 자원이 자동적으로 소거된다. 생성시에만 파괴루틴을 등록 후 신경쓰지 않아도 되어 버.. 2022. 12. 11.
[백준문제풀이] 10819 차이를 최대로 풀이일시 : 2020-10-15 ​ 문제 : N개의 정수로 이루어진 배열 A가 주어진다. 이때, 배열에 들어있는 정수의 순서를 적절히 바꿔서 다음 식의 최댓값을 구하는 프로그램을 작성하시오. |A[0] - A[1]| + |A[1] - A[2]| + ... + |A[N-2] - A[N-1]| ​ ​ 입력 : 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. ex) 6 20 1 15 8 4 10 ​ ​ 출력 : 첫째 줄에 배열에 들어있는 수의 순서를 적절히 바꿔서 얻을 수 있는 식의 최댓값을 출력한다. ex) 62 ​ ​ 풀이 : 숫자의 순서를 모두 섞어줘야한다. C++ STL에는 이를.. 2021. 1. 1.
[개념정리] STL _ 순열구하기 permutation 헤더파일을 추가하여 순열을 자동으로 구해줄 수 있다. ​ 필요성 : 알고리즘 문제를 풀며 위 함수의 필요성을 느끼게 되었다. 모든 경우에 대해 순열을 바꿔주어 입력을 넣어줘야되는데 일일히 넣어주기는 귀찮았다. permutation 함수를 써서 자동으로 모든 순열을 구할 수 있었다. (1 2 3 4로 기본 순서가 정해져있었다면 1 2 4 3 / 1 4 2 3 / 1 4 3 2 / 2 1 3 4 등 모든 순열을 구함) ​ - next_permutation : 현재 나와있는 수열에서 범위에 해당하는 다음 순열을 구하고 true를 반환한다. 다음 순열이 없다면 flase를 반환 ​ - prev_permutation : 현재 나와있는 수열에서 범위에 해당하는 이전 순열을 구하고 true를 반환한다. 이전 순열이 .. 2020. 12. 27.
[개념정리] STL라이브러리 - sort()2 풀이 일시 : 2020-08-02 ​ 개념 : sort()의 활용방안 part2 ​ 활용1 : 클래스 대신 Pair 라이브러리 사용하기 #include #include #include using namespace std; int main() { vectorv; //vector pair 선언 v.push_back(pair(9, "A")); v.push_back(pair(8, "B")); v.push_back(pair(7, "C")); v.push_back(pair(5, "D")); v.push_back(pair(6, "E")); sort(v.begin(), v.end()); //숫자의 오름차순으로 정렬된다. for (int i = 0; i < v.size(); i++) { cout b.second.seco.. 2020. 12. 26.
[개념정리] STL라이브러리 - sort()1 풀이 일시 : 2020-07-31 ​ 개념 : C++의 algorithm 헤더에 포함되어있는 함수로 정렬을 수행할 수 있다. ​ 활용1 : 기본 사용 - 주어진 숫자를 sort()로 쉽게 오름차순 정렬한다. #include #include using namespace std; int main(void) { int a[10] = { 9,3,5,4,1,10,8,6,7,2 }; sort(a, a + 10); for (int i = 0; i < 10; i++) { cout score < student.score; //기준 (내점수가 더 낮다면 우선순위가높다) } }; //클래스 생성완료 int main() { Student students[] = { Student("A",35), Student("B",24), .. 2020. 12. 26.
반응형