다음을 통해 공유


vector::operator<

사용 하는 방법을 보여 줍니다 있는 vector::operator < Visual C++에서 표준 템플릿 라이브러리 (STL) 함수입니다.

template<class _TYPE, class _A> inline
   bool operator<( 
   const vector<_TYPE, _A>& _X,
   const vector<_TYPE, _A>& _Y 
);

설명

[!참고]

프로토타입에 클래스/매개 변수 이름은 헤더 파일에서 버전이 일치 하지 않습니다.일부 가독성을 높이기 위해 수정 되었습니다.

샘플 id, 사용자 정의 형식의 빈 벡터를 선언합니다.초기화 하 고 임의의 순서로 벡터 네 Id를 추가 합니다.여을 정렬 사용 하는 연산자 < ID에 대 한 정의 및 새로 정렬 된 벡터를 생성 합니다.(점수 순으로 정렬 됩니다 않는 이름을 지정 합니다.)

예제

// Opless.cpp
// compile with: /EHsc
// Illustrates the defining the < operator to sort vectors
//
// Functions:
//
// operator< - Vector comparison operator.
//
// vector::begin - Returns an iterator to start traversal of the vector.
//
// vector::end - Returns an iterator for the last element of the vector.
//
// vector::iterator - Traverses the vector.
//
// vector::push_back - Appends (inserts) an element to the end of a
// vector, allocating memory for it if necessary.
//
// sort algorithm - Sorts the vector.
//
//////////////////////////////////////////////////////////////////////

// The debugger can't handle symbols more than 255 characters long.
// STL often creates symbols longer than that.
// When symbols are longer than 255 characters, the warning is disabled.
#pragma warning(disable:4786)

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>

using namespace std ;

// The ID class is used for team scoring. It holds each player's name
// and score.
class ID
{
public:
    string Name;
    int Score;
    ID() : Name(""), Score(0) {}
    ID(string NewName, int NewScore) : Name(NewName), Score(NewScore) {}
};

// In this example, an ID is equivalent only if both name and score match.
bool operator==(const ID& x, const ID& y)
{
    return (x.Name == y.Name) && (x.Score == y.Score);
}

// IDs will be sorted by Score, not by Name.
bool operator<(const ID& x, const ID& y)
{
    return x.Score < y.Score;
}

// Define a template class for a vector of IDs.
typedef vector<ID> NAMEVECTOR;

int main()
{
    // Declare a dynamically allocated vector of IDs.
    NAMEVECTOR theVector;

    // Iterator is used to loop through the vector.
    NAMEVECTOR::iterator theIterator;

    // Create a pseudo-random vector of players and scores.
    theVector.push_back(ID("Karen Palmer", 2));
    theVector.push_back(ID("Ada Campbell", 1));
    theVector.push_back(ID("John Woloschuk", 3));
    theVector.push_back(ID("Grady Leno", 2));

    cout << "Players and scores:" << endl;
    for (theIterator = theVector.begin(); theIterator != theVector.end();
         theIterator++)
        cout << theIterator->Score  << "     "
             << theIterator->Name << endl;
    cout << endl;

    // Sort the vector of players by score.
    sort(theVector.begin(), theVector.end());
    
    // Output the contents of the vector in its new, sorted order.
    cout << "Players ranked by score:" << endl;
    for (theIterator = theVector.begin(); theIterator != theVector.end();
         theIterator++)
        cout << theIterator->Score  << "     "
             << theIterator->Name << endl;
}
  

요구 사항

헤더: <vector>

참고 항목

개념

표준 템플릿 라이브러리 샘플