Existuje spôsob, ako implementovať C ++ multimap v perle?
odpovede:
7 pre odpoveď č. 1Použite a hash polia.
my %students = ( # keys are IDs, values are enrollments
100023 => [qw(Geography Mining)],
100058 => [qw(Geography Geology Woodcraft)],
);
3 pre odpoveď č. 2
Ak je to multimap, znamená to C ++ multimap, potom odpoveď je áno. V Perle, mapa zodpovedá hash. Hodnota priradená danému kľúču v haši môže byť odkazom na hash. Perl tiež nevyžaduje použitie ->
po prvej operácii indexovania, teda namiesto toho, aby hovoril $h{key1}->{key2}
môžete len povedať $h{key1}{key2}
čo vám dáva presvedčivú ilúziu mnohorozmerného hash.
Tu je príklad:
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my %h;
my $i;
for my $k (qw/one two three/) {
for my $j (qw/a b c/) {
$h{$k}{$j} = $i++;
}
}
print "one b should be 1: $h{one}{b}n",
Dumper %h;