|
| problemer med iterator i hash_map Fra : René Thomsen |
Dato : 11-07-01 22:01 |
|
Hejsa,
jeg har lidt bøvl med at erklære en iterator i forbindelse med hash_map
klassen.
Hvis jeg f.eks. arbejde med vektor ville det se sådan ud:
vector<string> test;
test.push_back("foo");
test.push_back("bar");
vector<string>::iterator it = test.begin();
while (it != test.end()) {
cout << *it << endl;
it++;
Hvordan skal linien vector<string>::iterator erklæres, når man arbejder med
hash_maps?
Jeg bruger flg. hash_map:
| |
René Thomsen (11-07-2001)
| Kommentar Fra : René Thomsen |
Dato : 11-07-01 22:06 |
|
Hejsa igen,
ups, jeg kom til at sende mailen inden jeg var færdig (jeg hader
shortcuts...)
her følger fortsættelsen:
> Jeg bruger flg. key/value def. i hash_map:
hash_map<const char*, string, hash<const char*>, eqstr> mithashmap;
hvor eqstr er:
struct eqstr {
bool operator()(const char* s1, const char* s2) const {
return strcmp(s1, s2) == 0;
}
};
Mvh.
René Thomsen
| |
Igor V. Rafienko (13-07-2001)
| Kommentar Fra : Igor V. Rafienko |
Dato : 13-07-01 13:25 |
|
[ René Thomsen ]
> jeg har lidt bøvl med at erklære en iterator i forbindelse med hash_map
> klassen.
_Hva_ er problemet?
> Hvis jeg f.eks. arbejde med vektor ville det se sådan ud:
>
> vector<string> test;
> test.push_back("foo");
> test.push_back("bar");
>
> vector<string>::iterator it = test.begin();
> while (it != test.end()) {
> cout << *it << endl;
> it++;
neeyy: std::copy( v.begin(), v.end(),
std::ostream_iterator< std::string >( std::cout, "\n" ) );
:)
> Hvordan skal linien vector<string>::iterator erklæres, når man
> arbejder med hash_maps?
hash_map< «template-list» > hm;
hm[ "foo" ] = "bar";
hm[ "zot" ] = "qux";
for ( hash_map< «template-list» > :: iterator i = hm.begin();
i != hm.end();
++i )
cout << (*i).first << " -> " << (*i).second << "\n";
Siden gcc installasjonen på huset er litt b0rken for tiden (nei, ser
der, configure ble nettopp ferdig), kan jeg ikke teste koden, men det
skulle overraske meg veldig dersom dette ikke fungerte (modulo std::
prefiks her og der).
ivr
--
On the door of a Moscow hotel room: If this is your first visit to the
USSR, you are welcome to it.
| |
|
|