| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- Algorithm
- list
- 구조체
- 파이썬
- MySQL
- Python
- 러스트
- Split
- Rust
- MySQL 서버 구축
- heap
- join
- MongoDB
- 연관 함수
- Sort
- numpy
- stack
- 환경설정
- in
- Set
- 메소드
- react
- 알고리즘
- 소유권
- HashMap
- array
- generic
- matplotlib
- 원격 데스크탑
- pandas
- Today
- Total
목록Programming Language/C++ (25)
미생
1. 인라인 함수1) ODR(One Definition Rule) 완화 → 헤더에 함수를 정의할 수 있게 함이게 사실상 inline의 본래 의미입니다.함수 정의를 헤더 파일에 적어도 된다여러 번 포함되더라도 “복제 오류”가 나지 않도록 조절한다즉, 링커 충돌을 막는 장치.이 특성 덕분에 템플릿 함수는 대부분 inline 형태로 돌아다니죠.2) 컴파일러에게 “이 함수는 인라인해도 괜찮아”라는 힌트단, 명령이 아니라 힌트입니다.컴파일러가 판단해서최적화 레벨함수 크기코드 중복 비용등을 고려한 뒤 인라인할지 말지 결정합니다.2. 인라인 함수의 역할함수 호출을 없애고 코드 본문을 호출 지점에 삽입해도 된다는 권한 제공여기서 “역할”은 다음과 같아요:함수 호출 오버헤드 제거 가능작은 함수의 호출 비용을 없애 성능 ..
using 키워드1. 상속 멤버의 접근 지정자 변경 가능(protected -> public 으로 변경할 때만 사용 가능)#include using namespace std;class character {public: character() : hp(100), power(100) {};protected: int hp; int power;};//character 클래스를 상속 받은 player 클래스class player : public character {public: player() {};};//기본 Monster 클래스class monster {public: monster() {};protected: void get_damage(int _damage) {}; void attack(playe..
폴드 표현식1. C++17 부터 도입된 폴드 표현식(fold expression)은 개수가 정해지지 않은 매개변수를 하나로 묶는 매개변수 팩을 반복해서 계산해 준다. 2. 사용법 (매개변수_팩_이름 연산자 ...)예시) (show_doll(doll_list) + ...)매개변수 팩을 이용한 예시#include using namespace std;// 매개변수 팩을 이용한 가변 인자 템플릿 – 말단 함수용template// 매개변수 팩의 마지막 인자를 연산 하기 위한 함수void find_doll(doll doll_name) { cout // find_dell 함수 오버로딩void find_doll(doll doll_name, dolls... doll_list) { cout 폴드 표현식 예시#inclu..
람다 표현식1. 함수형 언어나 파이썬과 같은 인터프리터를 사용하는 언어에서 사용되던 클로저(Closure)가 네이티브 프로그래밍 언어에 도입되면서 람다 함수, 람다 표현식이 되었다. 2. 즉시 호출 형태로 사용하면 코드의 위치가 곧 호출 위치이므로 로직을 한눈에 파악할 수 있으며, 인라인(inline) 함수로 만들어 성능을 최적화하는 데도 도움이 된다.(인라인이 가능하면, 호출 오버헤드를 제거할 수 있다.) 3. 외부 변수 캡처 방법 [=] : 선언부 범위의 모든 변수 읽기 전용으로 사용 [&] : 선언부 범위의 모든 변수 참조 형식으로 사용되어 읽기와 쓰기 가능[변수 1] : 변수1을 읽기 전용으로 사용4. 람다 표현식을 함수 객체로 사용하 때는 호출부를 작성하지 않는다. 또한 다른 함수나 객체에 매개..
범위 기반 for 문1. 데이터 집합을 정확하고 안전하게 순회할 수 있다. 2. 순회할 수 있는 데이터 형식이 제한된다. 즉 컴파일러가 반복 횟수를 명확히 알 수 있는 데이터 형식만 사용할 수 있다.따라서 포인터로 동적 할당한 메모리나 매개변수로 전달받은 배열은 사용할 수 없고, 반복자가 없는 stack, queue도 사용할 수 없다.#include #include using namespace std;int main(void) { array numbers { 7, 8, 2, 5, 3, 9, 0, 4, 1, 6 }; // for 구문 활용 배열 출력 for (int i = 0; i
L-Value1. 메모리에 "이름" 이 있고, 그 위치가 계속 존재하는 값. 즉, 주소를 가질 수 있고, 대입문의 왼쪽에 올 수 있는 값int x = 10; // x는 L-ValueR-Value1. 이름이 없고, 일시적으로만 존재하는 값. 즉, 임시 값 또는 대입문의 오른쪽에만 올 수 있는 값10 // R-value (임시 리터럴)x + 5 // R-value (계산 결과)func() // R-value (함수가 반환하는 임시 값)2. R-Value Reference 는 C++ 11에서 추가된 내용으로 이름 없는 임시 객체(R-value)를 가리킬 수 있는 참조. 즉, 기존에는 절대 참조할 수 없었던 “임시 값”을 잡아서 사용할 수 있게 해주는 기능. 3. 임시 객체(R-value)를 참조..