C++
-
[C++] ADL (Argument Dependent Lookup) 이해하기C++/C++ 실습 2024. 11. 10. 08:55
ADL (Argument Dependent Lookup) 정의ADJ는 C++ 98부터 도입된 개념이며 함수 인자가 소속된 네임스페이스를 기준으로 함수를 자동으로 찾아 호출하게 해주는 기능이다. 자동으로 인자의 네임스페이스에서 탐색하여 함수를 찾게 해준다. 예제 코드:#include namespace MyNamespace { struct MyType {}; void myFunction(MyType) { std::cout 위 코드에서 MyNamespace 내 구조체인 MyType 형태로 obj를 정의했다. 그리고 MyNamespace 안의 함수인 myFunction에 함수 인자 obj를 넣을 경우, myFunction 함수에 추가적으로 네임스페이스를 명시하지 않더라도 자동으로 obj..
-
[C++] Concepts 의미와 사용 방법C++/C++ STL 2024. 9. 22. 10:03
Concepts 개요Concepts는 C++20 표준에 처음 등장하였다. 템플릿 프로그래밍에서 제약 조건을 정의하는 기능을 한다. 이를 통해 특정 요구사항을 충족하는지, 컴파일 도중에 확인할 수 있다. 이를 통해, 템플릿을 더 명확하고 안전하게 작성할 수 있도록 도와준다. Concepts 정의Concepts는 Concept 키워드를 사용하여 정의된다. 특정 타입이 특정 요구 사항을 충족하는지 확인하기 위한 boolean 함수와 비슷한 역할을 한다. // Concepts 정의 예제templateconcept EqualityComparable = requires(T a, T b){ {a == b} -> std::convertible_to;}; 위 예시에서 EqualityComparable이라는 Concept..
-
[c++] vector, map 라이브러리 사용법C++/C++ 알고리즘 2023. 12. 9. 13:25
vector와 map은 모두 정렬을 쉽고 유용하게 해주는 라이브러리이다. 특히 map은 기존의 배열변수에서 인풋값이 정수였던 한계를 넘어, 문자를 인풋값으로 활용할수도 있다. #include "pch.h"#include #include #include using namespace std;int main(){ vector products = { "alpa", "beta", "ceta", "delta" }; vector changes = { "beta", "ceta" }; vector answer; map m; //map 데이터 할당 for (int j = 0; j map 데이터 변경, Products 데이터 변경 for (int i = 0; i 결과: Products는 제품이름의 나열이며, ..