Hoi allemaal,
Ik ben me aan het verdiepen STL en stuit nu op problemen met sorteren.
Deze commandline applicatie gemaakt in VC++ 6.0 sorteert data in een file ascending of descending via parameters opgegeven in de commandline.
Nu maak ik de map aan via een typedef:
Nu wil ik conditioneel oplopend of aflopend sorteren:
Nu gaat dit natuurlijk nooit werken aangezien je een typedef in de scope van een if statement defineert en deze typedef niet daarbuiten mag gebruiken.
Ook heb ik geprobeerd expliciet sort aan te roepen, maar dit geeft een hoop vage compile errors onder VC6.
Wie kan mij een beetje op weg helpen hoe dit probleem zo efficient mogelijk op te lossen?
Ik ben me aan het verdiepen STL en stuit nu op problemen met sorteren.
Deze commandline applicatie gemaakt in VC++ 6.0 sorteert data in een file ascending of descending via parameters opgegeven in de commandline.
Nu maak ik de map aan via een typedef:
C++:
1
| typedef std::map<std::string, int, std::less<std::string>, std::allocator<int> > mapOrder; |
Nu wil ik conditioneel oplopend of aflopend sorteren:
C++:
1
2
3
4
5
6
7
8
9
10
| if (iSortOrder == 0) { // Oplopend typedef std::map<std::string, int, std::less<std::string>, std::allocator<int> > mapOrder; } else { // Aflopend typedef std::map<std::string, int, std::greater<std::string>, std::allocator<int> > mapOrder; } |
Nu gaat dit natuurlijk nooit werken aangezien je een typedef in de scope van een if statement defineert en deze typedef niet daarbuiten mag gebruiken.
Ook heb ik geprobeerd expliciet sort aan te roepen, maar dit geeft een hoop vage compile errors onder VC6.
C++:
1
2
3
4
5
| if (iSortOrder == 1) { // Order descending std::sort(myMap.begin(), myMap.end(), std::greater<std::string>()); } |
Wie kan mij een beetje op weg helpen hoe dit probleem zo efficient mogelijk op te lossen?
It’s nice to be important but it’s more important to be nice