Re: Set with Sort routine
- From: Pete Becker <petebecker@xxxxxxx>
- Date: Tue, 27 Jun 2006 10:38:35 -0400
Bruce Chastain wrote:
I'm trying to create a set with my sort criteria specified, using MS Developer Studio 7 and I can't get the syntax correct. Everything I try creates a compile time error. Here's the basics:
#include <set>
using namespace std;
typedef struct {
int value;
} MyElem;
bool MyCompare( const MyElem& elem1, const MyElem& elem2 )
{
return( elem1.value < elem2.value );
}
void main()
{
set<MyElem, MyCompare> database;
}
The second template argument to set has to be the name of a type. It names type of the comparison object that the set is supposed to use.
To use your own comparison object, you have to pass its type to the template, and construct the set object with a comparison object.
So, start out by defining a type:
typedef bool (*comp)(const MyElem&, const MyElem&);
Then define the corresponding function, My Compare, which you've already done. Then create a set object that takes your type, and construct it with your function:
set<MyElem, comp> database(MyCompare);
--
Pete Becker
Roundhouse Consulting, Ltd.
.
- Follow-Ups:
- Re: Set with Sort routine
- From: Bruce Chastain
- Re: Set with Sort routine
- References:
- Set with Sort routine
- From: Bruce Chastain
- Set with Sort routine
- Prev by Date: Set with Sort routine
- Next by Date: Re: Set with Sort routine
- Previous by thread: Set with Sort routine
- Next by thread: Re: Set with Sort routine
- Index(es):