Mega Code Archive

 
Categories / Visual C++ .NET / Collections
 

Map reverse interator

#include "stdafx.h" #include <cliext/map> using namespace System; using namespace cliext; using namespace System::Collections::Generic; ref class MyClass{ public:     String^ Name;     MyClass() : Name(String::Empty) { }     MyClass(String^ name) : Name(name) { }     MyClass(const MyClass% orig){         Name = orig.Name;      }     MyClass% operator=(const MyClass% orig){         if (this != %orig)             Name = orig.Name;         return *this;     }     ~MyClass() { }     bool operator<(const MyClass^ rhs){         return (Name->CompareTo(rhs->Name) < 0);     }     bool operator==(const MyClass^ rhs)     {         return (Name->Equals(rhs->Name));     } }; int main(array<System::String ^> ^args) {     map<MyClass^, double> myMap;      MyClass^ King = gcnew MyClass("A");      myMap.insert(myMap.end(), map<MyClass^, double>::make_value(gcnew MyClass("Z"), 3.0));     myMap.insert(map<MyClass^, double>::make_value(King, 10.0));      myMap.insert(map<MyClass^, double>::make_value(gcnew MyClass("B"),9.0));     map<MyClass^, double>::pair_iter_bool success;     success = myMap.insert(map<MyClass^, double>::make_value(gcnew MyClass("N"),0.1));     Console::WriteLine("First Time {0} age {1} is added {2}",          success.first->first->Name,          success.first->second,          success.second ? "successfully" : "unsuccessfully");     map<MyClass^, double>::reverse_iterator pet_ri;     for(pet_ri = myMap.rbegin(); pet_ri != myMap.rend(); pet_ri++)         System::Console::Write("{0} [{1}]  ", pet_ri->first->Name, pet_ri->second);               return (0); }