C++ 7

[C++] std::function 완벽 정리

🔥 1. std::function이란?std::function은 함수를 객체처럼 다룰 수 있도록 도와주는 클래스 템플릿.이걸 사용하면 함수 포인터뿐만 아니라 람다(lambda), 멤버 함수, 일반 함수 등 다양한 호출 가능한 객체(Callable Object)를 저장하고 실행할 수 있다📌 헤더 파일#include 🚀 2. std::function 기본 사용법✅ 2-1. 함수 포인터 저장#include #include // 일반 함수void hello() { std::cout func = hello; // 함수 저장 func(); // 실행 return 0;} 🔎  설명std::function : 매개변수 없이 void를 반환하는 함수를 저장하는 타입func = hello; :..

개발자/개발 2025.03.23

[C++] 람다 표현식

📌 C++ 람다 표현식(Lambda Expression)C++에서 람다 표현식(lambda expression)**은 익명 함수(Anonymous Function)를 생성하는 기능이다.즉, 함수의 이름 없이 즉석에서 정의하고 사용할 수 있는 간단한 함수이다.📢 기존의 함수 포인터나 std::function보다 간결하게 함수를 정의하고 사용할 수 있음!✅ 람다 표현식 기본 문법[캡처](매개변수) -> 반환형 { 함수 본문 }; 요소설명[]캡처(Capture): 람다 내부에서 외부 변수 접근 여부 지정()매개변수(Parameter): 일반 함수처럼 매개변수 지정-> 반환형(선택 사항) 반환형 명시 (auto로 생략 가능){}함수 본문(Body): 람다에서 실행할 코드✅ 기본적인 람다 표현식 예제🔹 가장..

개발자/개발 2025.03.21

[C++] 함수 포인터

📌 C++ 함수 포인터(Function Pointer)란?C++에서 함수 포인터(Function Pointer)란, 함수의 주소를 저장하는 포인터를 의미한다.즉, 특정 함수의 주소를 저장하여 나중에 해당 함수를 호출할 수 있도록 한다.✅ 함수 포인터의 기본 문법함수 포인터를 선언할 때는 반환형과 매개변수 타입을 정확히 명시해야 한다.반환형 (*포인터이름)(매개변수 목록);🔹 함수 포인터 예제#include // 일반 함수 선언int add(int a, int b) { return a + b;}int main() { // 함수 포인터 선언 및 초기화 int (*funcPtr)(int, int) = add; // 함수 포인터를 사용하여 함수 호출 std::cout ✔ f..

개발자/개발 2025.03.21

[C++] 함수 객체 Functor

1. 함수 객체(Functor)란?함수처럼 동작하는 객체를 의미하며, operator() 연산자를 오버로딩하여 사용한다.일반적인 함수보다 상태를 저장할 수 있다는 점에서 차이가 있다.STL 알고리즘에서 함수 포인터 대신 자주 사용된다.🛠 함수 객체의 구현✅ 기본적인 Functor#include class Functor {public: void operator()() { // () 연산자 오버로딩 std::cout  📌 결과: 함수 객체가 호출되었습니다!🛠 함수 객체의 활용✅ 매개변수가 있는 Functor#include class Adder {private: int value;public: Adder(int val) : value(val) {} // 생성자에서 값 초기화 ..

개발자/개발 2025.03.21

[C++] 실무에서 많이 사용되는 const auto& (상수 참조)

📌 const auto& (상수 참조) 사용법과 활용C++에서 const auto&는 변수의 타입을 자동 추론하면서, 값이 변경되지 않도록 참조(Reference)로 전달하는 방법입니다.이 방식은 객체 복사를 방지하여 성능을 최적화하는 데 유용하며, 읽기 전용 데이터를 다룰 때 많이 사용됩니다.1️⃣ const auto&의 기본 개념const auto& 변수명 = 대상;const → 값 변경을 방지 (읽기 전용)auto → 자동 타입 추론& → 참조(Reference)를 사용하여 복사 방지💡 즉, const auto&는 원본을 변경하지 않으면서도 복사 비용을 줄이는 방법입니다.2️⃣ const auto&의 장점✅ 불필요한 복사 방지 → 복사가 발생하지 않아 성능 향상✅ 자동 타입 추론 → auto를 ..

개발자/개발 2025.03.13

[C++] 함수 호출 방식 (Call by Reference & Call by Value & Call by Pointer

기본적으로 C++에서 함수 호출 시 값을 넘겨주는 방식은 Call by Value(값 전달 방식) 입니다!즉, 매개변수에 원본 변수의 복사본이 전달되므로, 함수 내부에서 값을 변경해도 원본 변수에는 영향이 없습니다.1️⃣ Call by Value (값에 의한 호출)함수 호출 시 변수의 값을 복사하여 전달하는 방식입니다.즉, 함수 내에서 매개변수 값을 변경해도 원본 값은 그대로 유지됩니다.✅ Call by Value 예제#include using namespace std;void updateValue(int num) { // Call by Value num += 10; // num의 값만 변경됨 (원본 변수 변경 X) cout 🔹 출력 결과Inside function: 15After fun..

개발자/개발 2025.03.13

[코딩테스트] 코딩테스트를 준비하는 방법 - 프로그래밍 언어

이번에는 제가 1년동안 치열하게 준비했던 취준 과정 중에서무엇보다 꾸준하고 깊이 있게 준비했던 코딩테스트에 관해 이야기 해보려합니다!  [코딩테스트는 어떤 언어로 준비해야할까?]코딩테스트를 처음 준비할 때 가장 먼저 느끼는 벽이 프로그래밍 언어인 것 같습니다.  비전공자의 경우에는 새로운 언어를 하나 배워야 하는데, 무엇을 배우는 것이 맞는지 모르는 막막함. 전공자의 경우에는 자신의 커리어에 어떤 언어를 선택해서 준비하는 것이 맞는지 한참 고민하게 되는.  저는 코드트리에서 일하며 C++로 알고리즘 코드를 작성하기 시작하였고, 이후, 취업을 위해 코딩테스트를 준비하며 파이썬으로 스터디를 진행하고, SSAFY에서 알고리즘 역량 테스트를 대비하기 위해 자바로 알고리즘 문제를 풀며 C++, Python, JA..

반응형