6. STL의 수치 계산 ---수조(벡터) 연산 ---수조 서브집합 클래스 -slice 클래스와 slicearray 클래스 템플릿

2879 단어 stl

2. 배열 하위 집합 클래스 - slice 클래스 및 클래스 템플릿 slicearray

  • slice는 절단이라는 뜻으로 벡터를 임의의 차원의 수조로 처리할 것이다.
  • 컷 작업은 한 valarray에서 중간 거리가 n인 여러 요소입니다.
  • slice의 스텝은 두 원소를 절단하는 거리(간격의 아래 표시 개수)
  • 1.slice 클래스

  • std::slice는 선택기 종류이고 하나의 std::slice
  • 유형의 대상은 세 가지 값을 가지고 있다. 그것이 바로 시작 하표, 경계, 그리고 서브집중의 값의 총수이다.std::슬라이스 형식의 대상은valarray의operator[]의 하표로 사용할 수 있습니다.

  • 클래스 프로토타입:
    //  
    class slice;

    구조 함수:
    slice();
    slice( std::size_t start, std::size_t size, std::size_t stride );
    slice( const slice& other );

    설명: 세 함수는 모두 새로운 절편을 구성하는 것이다.첫 번째: 기본 구조 함수 2.두 번째: 1.start: 첫 번째 요소의 위치 2.size: 슬라이드의 원소수 3.stride: 절단 전후의 간격은 각 절단의 위치를 얻을 수 있다.start + 0*stride    2. start + 1*stride    3. …    4. start + (size-1)*stride 3. 세 번째:other:또 다른 슬라이드,other를 구성하는 부본 절단은 한 수조에서 일부 요소를 제시하여 새로운 수조(valarray)가 될 수 있다.슬라이스를 사용하면 여러 그룹의 여러 가지 서브집합을 만들 수 있습니다.(stl에 행렬 클래스가 없음)
  • 행렬의 표시는 바로valarray
  • 이다.
  • slice의 방식:valarray 타입의 그룹을 차원
  • 을 가지게 한다
    slice_array: 슬라이스에 내부 보조 연산의 종류를 제공합니다.
  • 사용자에게 slicearray류 완전 투명
  • slice_array의 구조 함수와 할당 조작은 모두 개인적인 것이다.

  • slice_array 클래스의 정의 작업: (1).할당 내용(2).다른 valarray에 값을 부여합니다 (3).연산에 맞는 값을 호출하려면 서브집합을valarray 수조로 변환해야 합니다.
    예:
    //--------------------- --------------------
    valarray<int> val_1 = { 1, 2, 3, 4, 5, 6, 7,8,9 };
    valarray<int>  val_2 = val_1[slice(0,2,3)];
    
    cout << "val_2:";
    copy(begin(val_2), end(val_2), ostream_iterator<int>(cout, "   "));
    cout << endl;
    //------------------ -------------------

    하면, 만약, 만약...1(3,3)의 행렬을 보면 우리는 첫 번째 열을 다음과 같이 취한다. 출력 결과는:
    val_2:1   4   7

    좋은 웹페이지 즐겨찾기