stl 사용 예제

août 2, 2019 9:14 Publié par

예를 들어, 여기에 항상 0을 반환 하는 함수: STL은 일반 프로그래밍의 예입니다. 개체 지향 프로그래밍은 프로그래밍의 데이터 측면에 중점을 두지만 일반 프로그래밍은 알고리즘에 중점을 둔다. STL 문자열을 벡터에 저장하는 간단한 예입니다. 이 예제에서는 벡터 내의 데이터에 액세스하는 세 가지 방법을 보여 주며, 우선 컨테이너는 템플릿 클래스 정의를 통해 구현됩니다. 이를 통해 필요한 형식의 요소 그룹을 정의할 수 있습니다. 예를 들어, 요소가 단순히 정수인 배열이 필요한 경우(위의 예에서와 같이) 대부분의 STL 알고리즘은 컨테이너 전체가 아닌 컨테이너의 요소 범위에 적용됩니다. 이 작업은 항상 전체 컨테이너에 적용하는 것보다 훨씬 일반적이지만 약간 서투른 구문이 만들어집니다. STL(예: ObjectSpace)의 일부 구현은 일반적인 경우에 대한 알고리즘의 추가 버전을 제공합니다. 예를 들어 STL에는 특정 요소가 컨테이너에 나타나는 횟수를 계산하는 알고리즘 카운트가 있습니다. STL 컨테이너에 대한 흥미로운(그리고 화려한!) 세부 사항은 STL이 사용하는 컨테이너 유형에 관계없이 작업 및 요소 조작이 동일한 일반 컨테이너 유형의 개념을 도입한다는 것입니다. 연결된 목록에서 가장 높은 요소를 찾는 것과 마찬가지로 배열에서 가장 높은 요소를 찾기 위해 정확히 동일한 알고리즘을 코딩할 수도 있습니다.

이것은 말하기 쉽지만 구현하기가 쉽지 않은 것처럼 들립니다. 위의 예에서 데이터는 생성 후 1,000 개의 제로를 포함합니다. 괄호가 아닌 괄호를 사용해야 합니다. 벡터를 다른 방식으로 초기화하려면 다음과 같이 작성하십시오: 또한 원래 예제에서는 목록의 다음 요소(즉, 다음 요소를 현재 가리키기)로 진행합니다. D 우리는 위의 예에서 사용 다양한 기능에 – 이 예에서, 당신은 실수로 같은 것을 작성하는 경우하지만 대신 포인터의, 이터레이터는 훨씬 더 큰 기능을 제공합니다. 모든 컨테이너에서 작동할 수 있을 뿐만 아니라 컨테이너 사용 범위 검사 및 프로파일링을 수행할 수도 있습니다. 또 다른 좋은 알고리즘은 sort()입니다. 그것은 사용하기 매우 쉽습니다. 다음 예제를 고려해 보십시오: 문제는 배열이 제한되어 있지 않다는 것입니다(예: 런타임시 배열 크기를 결정하는 것은 불가능합니다).

대신, 주요 문제는 많은 문제가 더 큰 기능을 가진 컨테이너를 필요로한다는 것입니다. 컨테이너와 관련하여 함수는 시작() 및 end())(이터레이터 s를 반환)에는 멤버 함수를 호출하는 개체의 구성에 따라 오버로드 해상도가 수행되는 여러 버전(오버로드된 멤버 함수)이 있습니다. 특히, begin() 및 end() 함수에 대한 프로토타입은 이러한 라인을 따라 뭔가가 될 것입니다: (예는 목록 컨테이너에 대해 도시됨) 벡터, 3×2, 행렬 초기화의 또 다른 예입니다: 예를 들어 벡터<int를 다음으로 전달하는 경우 const reference 매개 변수 (당신이해야 할 대로) 일부 함수 : 따라서, 우리는 const_iterators를 사용하여 아래에 표시된 예제를 구현 할 수 있습니다 : 특히 간단한 알고리즘을 살펴보고 배열을 사용하여 구현해 보겠습니다. 링크된 목록입니다.

Classés dans :Non classé

Cet article a été écrit par NotreSite

Les commentaires sont fermés.