컴퓨터 용어 정리 76
-
STL에서의 AdapterContainer는 기존의 컨테이너를 감싸 다른 인터페이스를 제공하거나 기능을 확장하는 역활을 한다. 일반적으로 어댑터 컨테이너는 컨테이너를 수정하지 않고 사용자에게 다양한 기능을 제공하기 위해 사용한다. 다른 STL의 table과 다르게 선형으로 데이터를 저장하게 된다. 종류는 다음과 같다. Stack Queue Stack Stack 은 백터를 변형해서 stack형태로 만든 컨테이너 이다. 데이터를 선형으로 저장하게 되며, LIFO [후입선출] 방식을 사용한다. #include #include int main() { cout
-
STL에 존재하는 컨테이너중 데이터를 선형적으로 관리하는것 이 아닌, 트리구조로 관리하는 컨테이너를 이야기 한다. 종류는 다음과 같다. Set / MultiSet Map / MultiMap AssociativeContainer는 데이터를 트리구조로 저장하면서, Key / Value 로 관리하게 되는데, Key를 트리구조 로 정리한 뒤 해당되는 Key에 접속하면 Key에 저장된 value의 주소로 타고 들어가는 방식이 된다. Set 저장하는 데이터 값 자체를 키로 사용하는 컨테이너 이다. 그렇기 때문에, 탐색 시 데이터의 존재 유무만 확인하며 탐색하게 된다. 또한, Key가 따로 없기 때문에 데이터의 중복을 허용하지 않는다. 다음은 코드 예시이다. #include #include int main() { c..
-
-
일반적인 프로그래밍은 형식지정자를 사용하여 int나 flaot같은 형식을 지정해준다는 기준 하에 프로그래밍 하게된다. 그러나, 이러한 방식은 코드의 재사용성을 낮추고 객체지향적인 프로그래밍을 만드는데 방해물이 될 수 있다. 그래서 제네릭 프로그래밍 이라는 프로그래밍 패러다임이 등장하였다. 이는 알고리즘과 데이터구조를 타입에 독립적인 방식으로 작성하여, 재사용성을 높이고 코드의 중복을 줄이는 효과가 있다. 예를들어, C++의 STRL에서 vector나 list같은 배열컨테이너는 제네릭 프로그래밍의 대표적인 예시이다. 이러한 컨테이너는 타입에 관계없이 ( vector이나 list같은 타입을 형식에 관계하지 않고 생성시 선언으로 타입을 정해줄 수 있다 ) 정수나 문자열같은 다양한 타입의 데이터를 저장해줄 수 ..
-
C++11 부터 람다식 함수 사용방법을 지원한다. 이는, 익명 함수를 생성하는 방법 중 하나로, 람다식 함수는 이름이 없는 함수 객체를 생서아형, 함수처럼 호출 할 수 있다. 람다식 함수는 함수 내부에서 선언되며, 접속할 수 있는 이름이 존재하지 않고 함수 내부에 선언되기 때문에 이를 변수에 할당하거나, 다른 함수에 전달할 수 없다. 람다식 함수의 기본 문법은 다음과 같다. 여기서 capture list 가 잘 이해가 가지 않을 수 있는데, capture list는 다음과 같은 방법을 따른다. [ ] : 모든 변수를 캡처하지 않는다. [변수1, 변수2, ... ] : 지정된 변수만 캡처한다. [&] : 참조에 의한 캡처를 수행한다. [=] : 복사에 의한 캡처를 수행한다. [&, 변수1, 변수2, .....
-
https://learn.microsoft.com/ko-kr/cpp/standard-library/algorithm?view=msvc-170 자세한 정보: learn.microsoft.com 표준적인 C++라이브러리의 일부분으로, 다양한 알고리즘 함수를 기본제공해준다. 이러한 함수들은 다양한 상황에서 사용가능한 함수들로 이루어져 있으며 이중참조 포인터 배열을 기본으로 컨테이너와 반복자를 이용하여 작동하게 된다. 대부분 알고리즘 라이브러리는 다음과 같은 과정으로 사용된다. 알고리즘 함수를 호출하여 컨테이너 요소를 조작한다. 필요한 경우 반복자를 제공하여 요소를 선택한다. 알고리즘 함수의 결과를 적용하여 원래 컨테이너를 수정한다. 이러한 라이브러리 함수를 잘 활용하면 코드를 작성할 때 매우 편하게 작성할 수..