Click here to Skip to main content
15,894,362 members
Home / Discussions / ATL / WTL / STL
   

ATL / WTL / STL

 
AnswerRe: Add event handler functions from ActiveX to VC++6.0 ATL Project Pin
Garth J Lancaster2-Dec-09 0:28
professionalGarth J Lancaster2-Dec-09 0:28 
AnswerRe: Add event handler functions from ActiveX to VC++6.0 ATL Project Pin
Garth J Lancaster2-Dec-09 0:34
professionalGarth J Lancaster2-Dec-09 0:34 
GeneralRe: Add event handler functions from ActiveX to VC++6.0 ATL Project Pin
MESCO2-Mar-10 20:26
MESCO2-Mar-10 20:26 
Questionsorting an STL list of =references= to objects Pin
kerchunk1-Dec-09 12:39
kerchunk1-Dec-09 12:39 
AnswerRe: sorting an STL list of =references= to objects Pin
kerchunk1-Dec-09 14:44
kerchunk1-Dec-09 14:44 
GeneralRe: sorting an STL list of =references= to objects Pin
Simple Inheritance1-Dec-09 16:48
Simple Inheritance1-Dec-09 16:48 
GeneralRe: sorting an STL list of =references= to objects Pin
kerchunk1-Dec-09 20:56
kerchunk1-Dec-09 20:56 
GeneralRe: sorting an STL list of =references= to objects Pin
kerchunk2-Dec-09 10:02
kerchunk2-Dec-09 10:02 
I made the changes you suggested but now the code does not compile. Your instructions were clear - did I fat-finger something?

[code]
// sort_example.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
#include <list>
#include <iterator>
#include <vector>
#include <algorithm>

using namespace std;

struct pstchip_pin_row {
string primitive;
string pin_name;
string pin_number;

/* optional constructors */
pstchip_pin_row( string aa, string bb, string cc) {
primitive = aa;
pin_name = bb;
pin_number = cc;
}

//overridding operators
pstchip_pin_row& operator = (const pstchip_pin_row &itemToCopy) {
this->primitive = itemToCopy.primitive;
this->pin_name = itemToCopy.pin_name;
this->pin_number = itemToCopy.pin_number;
return *this;
}

bool operator == ( const pstchip_pin_row& itemToCompare) {
if( this->primitive == itemToCompare.primitive && this->pin_name < itemToCompare.pin_name ) return true;
return false;
}

bool operator < ( const pstchip_pin_row& itemToCompare) {
if( this->primitive < itemToCompare.primitive ) return true;
if( this->primitive == itemToCompare.primitive && this->pin_name < itemToCompare.pin_name) return true;
return false;
}

};

struct pstchip_pin_wor {
string primitive;
string pin_name;
string pin_number;

/* optional constructors */
pstchip_pin_wor( string aa, string bb, string cc) {
primitive = aa;
pin_name = bb;
pin_number = cc;
}

//overridding operators
pstchip_pin_wor& operator = (const pstchip_pin_wor &itemToCopy) {
this->primitive = itemToCopy.primitive;
this->pin_name = itemToCopy.pin_name;
this->pin_number = itemToCopy.pin_number;
return *this;
}

bool operator == ( const pstchip_pin_wor& itemToCompare) {
if( this->primitive == itemToCompare.primitive && this->pin_name < itemToCompare.pin_name ) return true;
return false;
}

bool operator < ( const pstchip_pin_wor& itemToCompare) {
if( this->primitive < itemToCompare.primitive) return true;
if( this->primitive == itemToCompare.primitive && this->pin_name < itemToCompare.pin_name) return true;
return false;
}

// this function really just wraps pstchip_pin_wor::operator< so that it can accept pointers
static bool compareFunc( const pstchip_pin_wor* a, const pstchip_pin_wor* b) {
return *a < *b;
}
};

//main function
int main(int argc, char* argv[]) {

int nRetCode = 0;

list<pstchip_pin_row> rows_pstchip_pins;
list<pstchip_pin_wor*> wors_pstchip_pins;

//populate list
rows_pstchip_pins.push_back( pstchip_pin_row( "Europe", "Spain", "Madrid" ) );
rows_pstchip_pins.push_back( pstchip_pin_row( "North America", "USA", "Washington DC" ) );
rows_pstchip_pins.push_back( pstchip_pin_row( "North America", "Canada", "Ottawa" ) );
rows_pstchip_pins.push_back( pstchip_pin_row( "Europe", "Germany", "Berlin" ) );
rows_pstchip_pins.push_back( pstchip_pin_row( "South America", "Brazil", "Sao Paulo" ) );
rows_pstchip_pins.push_back( pstchip_pin_row( "North America", "Mexico", "Mexico City" ) );

wors_pstchip_pins.push_back( new pstchip_pin_wor( "Europe", "Spain", "Madrid" ) );
wors_pstchip_pins.push_back( new pstchip_pin_wor( "North America", "USA", "Washington DC" ) );
wors_pstchip_pins.push_back( new pstchip_pin_wor( "North America", "Canada", "Ottawa" ) );
wors_pstchip_pins.push_back( new pstchip_pin_wor( "Europe", "Germany", "Berlin" ) );
wors_pstchip_pins.push_back( new pstchip_pin_wor( "South America", "Brazil", "Sao Paulo" ) );
wors_pstchip_pins.push_back( new pstchip_pin_wor( "North America", "Mexico", "Mexico City" ) );

cout << "before sorting in list" << endl << endl;
for( list<pstchip_pin_row>::iterator gh = rows_pstchip_pins.begin() ; gh != rows_pstchip_pins.end() ; gh++ ) {
cout << gh->primitive << "==" << gh->pin_name << "==" << gh->pin_number << endl;
}

rows_pstchip_pins.sort();

cout << endl << "after sorting" << endl << endl;
for( list<pstchip_pin_row>::iterator uy = rows_pstchip_pins.begin() ; uy != rows_pstchip_pins.end() ; uy++ ) {
cout << uy->primitive << "==" << uy->pin_name << "==" << uy->pin_number << endl;
}


cout << endl << endl << "before sorting using pointers in list" << endl << endl;
for( list<pstchip_pin_wor*>::iterator ka = wors_pstchip_pins.begin() ; ka != wors_pstchip_pins.end() ; ka++ ) {
cout << (*ka)->primitive << "==" << (*ka)->pin_name << "==" << (*ka)->pin_number << endl;
}

wors_pstchip_pins.sort( pstchip_pin_wor::compareFunc);

cout << endl << "after sorting" << endl << endl;
for( list<pstchip_pin_wor*>::iterator zm = wors_pstchip_pins.begin() ; zm != wors_pstchip_pins.end() ; zm++ ) {
cout << (*zm)->primitive << "==" << (*zm)->pin_name << "==" << (*zm)->pin_number << endl;
}

return nRetCode;

} //end-function

[/code]


TIA,

kerchunk
GeneralRe: sorting an STL list of =references= to objects [modified] Pin
Simple Inheritance2-Dec-09 10:48
Simple Inheritance2-Dec-09 10:48 
GeneralRe: sorting an STL list of =references= to objects Pin
kerchunk3-Dec-09 19:42
kerchunk3-Dec-09 19:42 
GeneralRe: sorting an STL list of =references= to objects Pin
Simple Inheritance4-Dec-09 10:38
Simple Inheritance4-Dec-09 10:38 
GeneralRe: sorting an STL list of =references= to objects Pin
kerchunk6-Dec-09 9:03
kerchunk6-Dec-09 9:03 
QuestionHow to get clipping region of windowless activex? Pin
smalti1-Dec-09 9:15
smalti1-Dec-09 9:15 
QuestionError on using BMP image in LoadBitmap Pin
am 200926-Nov-09 0:47
am 200926-Nov-09 0:47 
AnswerRe: Error on using BMP image in LoadBitmap Pin
KingsGambit29-Nov-09 19:16
KingsGambit29-Nov-09 19:16 
QuestionHow to control IWMPPlayer? Pin
kcynic25-Nov-09 16:30
kcynic25-Nov-09 16:30 
QuestionNo Keyboard Support for ActiveX Controls in WIN32 App Pin
hZenz23-Nov-09 0:12
hZenz23-Nov-09 0:12 
QuestionHow to implement a multi-column menu? Pin
hawkgao012919-Nov-09 21:00
hawkgao012919-Nov-09 21:00 
AnswerRe: How to implement a multi-column menu? Pin
hawkgao012919-Nov-09 21:58
hawkgao012919-Nov-09 21:58 
QuestionExposing methods via a COM object Pin
mbet87817-Nov-09 22:24
mbet87817-Nov-09 22:24 
AnswerRe: Exposing methods via a COM object Pin
Jonathan Davies18-Nov-09 7:42
Jonathan Davies18-Nov-09 7:42 
AnswerRe: Exposing methods via a COM object Pin
Lim Bio Liong18-Nov-09 22:59
Lim Bio Liong18-Nov-09 22:59 
AnswerRe: Exposing methods via a COM object Pin
mbet87825-Nov-09 23:09
mbet87825-Nov-09 23:09 
QuestionHow to prevent Quicksort stack overflow? Pin
crazy6612-Nov-09 6:21
crazy6612-Nov-09 6:21 
AnswerRe: How to prevent Quicksort stack overflow? Pin
Richard MacCutchan12-Nov-09 9:14
mveRichard MacCutchan12-Nov-09 9:14 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.