有没有办法在perl中实现C ++多图?
答案 0 :(得分:7)
my %students = ( # keys are IDs, values are enrollments
100023 => [qw(Geography Mining)],
100058 => [qw(Geography Geology Woodcraft)],
);
答案 1 :(得分:3)
如果通过multimap表示C++ multimap,那么答案是肯定的。在Perl中,映射对应于散列。与散列中的给定键相关联的值可以是对散列的引用。 Perl也不要求你在第一次索引操作后使用->
,所以不要说$h{key1}->{key2}
,而是只能说$h{key1}{key2}
,这会让你产生令人信服的多维哈希假象。
以下是一个例子:
#!/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;