// vector を並べ替え(降順2)
// functional の greater<T>( ) を使用


#include <iostream>
#include <algorithm>
#include <functional>
#include <vector>

using namespace std;


int
main( ) {
	cout << "[vector10a] sort(降順2) vector" << endl ;

	vector<int>  iVec;

	cout << "vector size = " << iVec.size( ) << endl ;

	iVec.push_back(  7 );
	iVec.push_back(  9 );
	iVec.push_back(  8 );

	cout << "vector size = " << iVec.size( ) << endl ;

	for ( vector<int>::iterator i = iVec.begin( ) ; i != iVec.end( ) ; i++ ) {
		cout << *i << endl ;
	}

	vector<int>::iterator first = iVec.begin( );
	vector<int>::iterator last  = iVec.end( );

	sort( first, last, greater<int>( ) );

	cout << "vector size = " << iVec.size( ) << endl ;

	for ( i = iVec.begin( ) ; i != iVec.end( ) ; i++ ) {
		cout << *i << endl ;
	}

	cout << "size( )     = " << iVec.size( ) << endl ;
	cout << "max_size( ) = " << iVec.max_size( ) << endl ;
	cout << "capacity( ) = " << iVec.capacity( ) << endl ;

	return 0;
}


//	functional を利用すれば簡単。
//	降順の場合は 関数オブジェクトに greater<型>( ) を指定する


// end of file