목록C++ & C#/C++ (21)
오보에블로그
참고 : https://learn.microsoft.com/ko-kr/cpp/build/walkthrough-creating-and-using-a-dynamic-link-library-cpp?view=msvc-170 연습: 자체 동적 연결 라이브러리 만들기 및 사용(C++) C++를 사용하여 Visual Studio에서 Windows DLL(동적 연결 라이브러리)을 만듭니다. learn.microsoft.com
상황 C++ 은 버전별로 추가된 문법이 다르기 때문에 현재 지정된 컴파일러에 맞는 문법을 사용한건지 체크할 필요가 있다. 그것이 아니어도, 추가된 문법에 대해 확인을 하고 싶은 상황 관련 링크 cppreference.com : 관련 문법들이 자세하게 정리되어있다. modern-cpp-features : 버전별로 마크다운으로 정리해주셨다. 버전별로 어떤 문법이 추가되었는지 개괄적으로 볼 수 있다.

멀티 스레드란? 멀티 스레드란, 하나의 프로세스 안의 여러개의 스레드를 병렬적으로 실행시키는 것을 의미한다. 멀티 프로세스와 다르게 프로세스 안의 자원을 공유할 수 있어서, 컨텍스트 스위치 비용이 적다는 장점이 있다. 하지만, 여러 스레드에서 동시 자원을 사용할 때 문제가 발생할 수 있다. 아래의 코드 예시를 확인해보자. #include #include #include #include using namespace std; int counter = 0; void func() { for (int i = 0; i < 100000; i++) counter += 1; } int main() { vector ts; // counter에 1씩 100000번 더하는 스레드 5개 생성 for (int i = 0; i <..
C++ this_thread 현재 스레드에 접근할 수 있는 함수 라이브러리 get_id 현재 스레드의 아이디 반환 /* output : main thread ID : 37832 t1 thread ID : 18204 func called! thread ID : 18204 */ #include #include using namespace std; void func() { cout
스레드 란? 프로세스를 실행시키는 단위, 하나의 프로세스는 여러개의 스레드(멀티 스레드)로 이루어 질 수 있으며, 동일 프로세스 내에서는 메모리 자원을 공유할 수 있다. C++ thread 참고 : C++레퍼런스 C++11 에서 부터 thread 헤더를 통해 스레드 관련 라이브러리를 사용할 수 있다. std::thread 는 싱글 스레드를 실행하는 클래스이다. 해당 클래스를 사용하면, 별도의 싱글 스레드에서 지정한 함수가 호출된다. /* output : 28580 thread execute! */ #include #include using namespace std; void func() { cout
타입 최대 최소 define 상수 라이브러리 C# 에서 int.MaxValue와 같이 해당 타입에서 최대/ 최소로 올수있는 상수값을 가져올 수 있다. 물론 C++ 도 가능하다. limits.h 라이브러리를 사용하면된다. 그냥 Visual Studio에서는 바로 사용 가능하다가, 프로그래머스 테스트 웹 IDE 에서 작업하니 오류가 나길래 찾아보게 되었다. int maxValue = INT_MAX; 나 이런식으로 사용할 수 있다. 정의된 상수들을 이용해서 최대/ 최소 값으로 초기화하면 코드가 좀더 보기 편해질 수 있다. #define INT_MIN (-2147483647 - 1) #define INT_MAX 2147483647 #define LLONG_MAX 9223372036854775807i64 #def..
A Simple Linux Shell 본 설계 프로젝트에서는 간단한 리눅스 명령어 해석기(일명: smsh)를 스스로 만들어 본다. 설계 및 구현해야 할 smsh는 다음과 같은 명령어를 처리할 수 있어야 한다. foreground and background execution (&) multiple commands separated by semicolons history command shell redirection (>, >>, >|, 0 && strcmp(buffer[buf_leng-1],">")== 0){ strcat(buffer[buf_leng-1],">"); } else{ if(strcmp(buffer[buf_leng],"") != 0) buf_leng++; strcat(buffer[buf_leng..
전투 드로이드 가격 성공 한국어원문 문제집 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 128 MB 1751 1064 1001 62.916% 문제 상근이는 망가진 전투 드로이드를 고치려고 하고 있다. 전투 드로이드의 각 부품의 가격은 다음과 같다. 블래스터 라이플 $350.34 시각 센서 $230.90 청각 센서 $190.55 팔 $125.30 다리 $180.90 입력 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 음이 아닌 정수 다섯 개(A B C D E)로 이루어져 있다. A: 필요한 블래스터 라이플의 개수 B: 필요한 시각 센서의 개수 C: 필요한 청각 센서의 개수 D: 필요한 팔의 수 E: 필요한 다리의 수 출력 각 테스트 케이스 마다, 입력으로 주어진 부품을 ..
/* 별 찍기 - 17 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 256 MB 2221 1540 1448 71.506% 문제 예제를 보고 별찍는 규칙을 유추한 뒤에 별을 찍어 보세요. 입력 첫째 줄에 N (10) printf(" "); for(int j = i-2; j>=0;j--){ printf(" "); } printf("*"); for(int j = 2*(N-i)-1; j > 0 ; j--){ printf(" "); } if(i