컴퓨터 8

C++ 라이브러리 OpenMP

OpenMP는 멀티코어 환경에서 효율적으로 프로그램 특히 단순 반복문을 여러 스레드로 나누어 병렬로 실행할 수 있게 도와주는 API다. 기존 코드의 반복문에 지시문 한줄만 추가해주면 되어 굉장히 간단하지만스레드 간 동기화 및 공유 자원 관리에 주의해야 한다. 사용방법1. 헤더#include 2. 병렬화 지시 for문이 있으면 그 앞에 다음 한 줄을 추가해주면 된다.#pragma omp parallel forparallel : 병렬 실행 명령for : 반복문을 각 스레드에 나누어 할당 3. 추가 명령(예시)병렬화된 반복문에서는 각 스레드가 독립적으로 작업을 수행한다.하지만, 모든 스레드가 특정 변수에 작업을 시도하는 경우 충돌이 발생할 수 있다.만약 각 스레드에서 독립적으로 수행한 작업을 sum 이라는 변..

컴퓨터 2024.10.24

C++ 라이브러리 Armadillo

Armadillo는 C++ 선형 대수 라이브러리로, 개발 친화적이면서도 빠른 연산 속도를 목표로 한다.MATLAB과 유사한 고급 구문과 기능을 제공한다.C++에서 알고리즘 개발에 유용하며, 연구 코드를 신속하게 상용 환경으로 변환하는 데 적합하다.벡터, 행렬, 큐브를 위한 효율적인 클래스를 제공하며, 조밀한(dense) 행렬과 희소(sparse) 행렬을 지원한다.정수, 부동 소수점 및 복소수 숫자를 지원한다.정교한 표현 평가기(템플릿 메타 프로그래밍 기반)가 여러 연산을 자동으로 결합하여 속도와 효율성을 증가시킨다.동적 평가가 탐지된 행렬 구조에 따라 최적의 코드 경로를 자동으로 선택한다.고유값 분해(eigen), 특이값 분해(SVD), 콜레스키 분해(Cholesky) 등의 행렬 분해가 LAPACK 또는..

컴퓨터 2024.10.22

C++ 라이브러리 추가 방법

다시 말하지만나는 컴맹이다.정말 간단한건데도 불구하고 아무것도 몰라서 이렇게 적어놔야 다음에 또 쓸수 있을것 같아서 쓴다. 1. 라이브러리를 다운로드 받아서 압축해제를 한다.2. 라이브러리만 저장해놓는 폴더 같은걸 하나 만들어놓는것도 좋을듯. 아무튼 이렇게 다운로드 받은 라이브러리 폴더를 경로 복사한다.3. 비주얼 스튜디오에서 프로젝트 이름에 좌클릭 - 속성에 들어가서 구성 속성 - C/C++ - 일반 - 추가 포함 디렉터리에 경로를 붙여넣기 한다.4. 확인을 누르고 나오면 컴파일이 성공적으로 될것이다. 정말 간단.

컴퓨터 2024.10.21

C++ 표준 라이브러리 자료구조 종류

1. std::array설명: C++11에서 도입된 고정 크기 배열입니다. 크기가 컴파일 타임에 결정되며, 스택 메모리에 할당됩니다.특징:크기가 고정되어 있어 메모리 관리가 간단합니다.STL 알고리즘과 호환됩니다.복사 및 대입이 용이합니다. #include std::arrayint, 5> myArray = {1, 2, 3, 4, 5};2. std::vector설명: 동적 크기 배열로, 필요에 따라 크기를 조정할 수 있습니다. 메모리는 힙에 할당됩니다.특징:요소 추가 및 제거가 용이합니다 (push_back(), pop_back() 등).크기를 동적으로 변경할 수 있습니다.STL 알고리즘과 호환됩니다. #include std::vectorint> myVector = {1, 2, 3};myVector.pus..

컴퓨터 2024.10.21

#include <unordered_map>

기초가 없어서 그냥 두서없이, 순서 없이 그냥 쓰는 헤더파일들 정리할 계획. 얘는 Hash Map 자료 구조를 사용할 수 있게 해주는 C++ 내장 헤더파일.사용 방법은 unordered_map {name of variable}; 파이썬에서 딕셔너리랑 비슷한 기능이라 생각하면 될것 같다. 기능들- 검색{name of variable}["{name of key}"]-> 해당 key에 대응되는 value 출력 - 추가그냥 추가하면 됨 - 제거{name of variable}.erase("{name of key}")-> 해당 key와 대응되는 value 삭제

컴퓨터 2024.10.21

지금 생각

중고딩때 정보올림피아드를 오래 했어서코딩엔 자신이 있는 편이다....라고 생각했지만 참 어리석은 생각이었다.그냥 메인함수 하나에 기껏해봤자 한 파일 안에서 함수 한두개 더 만들어서 코딩한거가지고 나 컴퓨터 잘해요 거리고 있었으니 컴퓨터 구조에 대해서도 대충은 알지만프로젝트를 만들어서 관리하는건 좀 다른 영역이란걸 깨달았다.이제는 시뮬레이터를 진짜로 개발해야된다. 힘들다.고생 끝에 낙이 있으리

컴퓨터 2024.10.17