Programming
-
[c++] smart pointer (unique_ptr, shared_ptr, weak_ptr)Programming/c++ 2022. 9. 22. 11:34
smart pointer C++ 프로그램에서 new 키워드를 사용하여 동적으로 할당받은 메모리는, 반드시 delete 키워드를 사용하여 해제해야 합니다. C++에서는 메모리 누수(memory leak)로부터 프로그램의 안전성을 보장하기 위해 스마트 포인터를 제공하고 있습니다. 스마트 포인터(smart pointer)란 포인터처럼 동작하는 클래스 템플릿으로, 사용이 끝난 메모리를 자동으로 해제해 줍니다. smart pointer 동작 보통 new 키워드를 사용해 기본 포인터(raw pointer)가 실제 메모리를 가리키도록 초기화한 후에, 기본 포인터를 스마트 포인터에 대입하여 사용합니다. 이렇게 정의된 스마트 포인터의 수명이 다하면, 소멸자는 delete 키워드를 사용하여 할당된 메모리를 자동으로 해제합..
-
[c++] std::max_element , std::min_element 함수Programming/c++ 2022. 9. 16. 20:11
std::max_element , std::min_element max_element(), min_element()는 둘다 모든 요소에 접근을 해야 하기 때문에, 모든 STL 컨테이너에 대해서 선형으로 동작한다. 즉, 시간 복잡도가 O(n)이다. std::max_element , std::min_element 함수 정의 // MAX template ForwardIterator max_element (ForwardIterator first, ForwardIterator last); template ForwardIterator max_element (ForwardIterator first, ForwardIterator last, Compare comp); //MIN template ForwardIterato..
-
[c++] lower_bound, upper_bound 함수Programming/c++ 2022. 9. 15. 14:36
lower_bound, upper_bound 란? c++에서 이진 탐색으로 원소를 탐색하는 기능을 합니다. lower_bound 찾으려는 target 값보다 같거나 큰 숫자 가 배열 몇 번째에서 처음 등장하는지 찾는 함수 -사용 조건 : 탐색을 진행할 배열 및 벡터는 오름차순으로 정렬되어 있어야 한다. lower_bound 예제 int arr[6] = { 1,2,3,4,5,6 }; int index = lower_bound(arr, arr + 6, 6) - arr; #include #include #include using namespace std; int main() { vector nums = { 1,3,5,6 }; int target = 4; auto a = lower_bound(nums.begin..
-
[Django] Bootstrap5 vscode 적용하기Programming/Django 2022. 8. 31. 12:47
설치 방법은 1. django bootstrap5 설치 2. compiled CSS and JS download 해서 프로젝트에 적용 3. npm 이용한 bootstrap dist 적용 세가지가 있다. 이외의 방법도 있다. 이번 포스팅에서는 1, 2번 내용을 담아봤습니다~ 1. django bootstrap5 설치 (1) pip를 이용하여 설치 python -m pip install django-bootstrap5 (2) setting.py 추가 INSTALLED_APPS = ( # ... 'django_bootstrap5', # ... ) 2. compiled CSS and JS download (1) Bootstrap 공식 사이트에서 Compiled CSS and JS 파일을 download Down..
-
[Django] Bootstrap5 정의 및 적용하기1Programming/Django 2022. 8. 31. 12:36
Bootstrap이란? 트위터에서 사용하는 각종 레이아웃, 버튼, 입력창 등의 디자인을 CSS와 Javascript로 만들어 놓은 것이다. 부트스트랩은 전세계적으로 가장 많이 사용되는 오픈소스 CSS 프레임워크이다. 반응형 CSS 를 제공한다. Bootstrap 적용 방법 외부 스타일시트로 적용(jsDelivr) 소스 다운로드하여 로컬환경에 적용 1. 외부 스타일시트로 적용(jsDelivr) 부트스트랩의 이벤트에 반응하는 구조를 사용하기 위해서는 jQuery를 비롯한 몇몇 자바스크립트 라이브러리가 필요하다. 자바스크립트 라이브러리도 jsdelivr 링크를 통해 사용할 수 있다. integrity, crossorigin 속성은 암호화 데이터를 위한 보안 요소로 추가되었다. Bootstrap Check Po..
-
[c++] unique 함수Programming/c++ 2022. 8. 1. 22:47
unique 함수 : 지정된 범위에서 서로 옆에 있는 중복 요소를 제거합니다. 1.함수 헤더 파일 #include 2.함수 원형 template ForwardIterator unique( ForwardIterator first, ForwardIterator last); template ForwardIterator unique( ForwardIterator first, ForwardIterator last, BinaryPredicate pred); template ForwardIterator unique( ExecutionPolicy&& exec, ForwardIterator first, ForwardIterator last); template ForwardIterator unique( ExecutionP..
-
[c++] std::accumulate 함수 vector sumProgramming/c++ 2022. 7. 16. 20:07
accumulate 함수 STL container의 원소의 합을 모두 구하고 싶을때 사용하면 유용한 함수. 1. accumulate 함수 헤더 파일 #include 2. 함수 원형 std::accumulate(const _INIT , const _INIT , int) 컨테이너의 iterator(반복자) , sum의 초기값을 Agument(인자)로 설정합니다. 3. return 값 컨테이너 원소들의 합을 모두 구한 int형으로 반환 4. 예제 #include #include #include int main() { std::vector nVec = {1,3,5,87,15}; int nSum = std::accumulate(nVec.begin(), nVec.end(), 0); std::cout
-
[nmap] nmap 설치 (포트 스캐닝 port scanning)Programming/Setup 2022. 7. 11. 21:05
포트 스캐닝을 하기 위해 필요한 툴인 nmap을 설치해보겠습니다. 1. nmap 공식 홈페이지에서 os환경에 맞는 setup파일을 다운로드 합니다. https://nmap.org/download.html#windows Download the Free Nmap Security Scanner for Linux/Mac/Windows Download Reference Guide Book Docs Zenmap GUI In the Movies Older versions (and sometimes newer test releases) are available from the Nmap release archive (and really old ones are in dist-old). For the more securit..