perl - 如何在 Perl 中表示集合?

标签 perl hash set

我想用 Perl 表示一个集合。我通常做的是使用带有一些虚拟值的哈希,例如:

my %hash=();
$hash{"element1"}=1;
$hash{"element5"}=1;

然后使用if (define $hash{$element_name})来判断某个元素是否在集合中。

这是一种常见做法吗?有什么改进建议吗?

另外,我应该使用define还是exists

谢谢

最佳答案

是的,以这种方式构建哈希集是一种常见的习惯用法。请注意:

my @keys = qw/a b c d/;
my %hash;
@hash{@keys} = ();

优于使用 1 作为值,因为 undef 占用的空间要少得多。这也迫使您使用 exists (无论如何,这是正确的选择)。

关于perl - 如何在 Perl 中表示集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3700037/

相关文章:

c++ - 为什么 std::set 容器使用的内存比其数据大小多得多?

python 查找具有共享元素的集合

Perl 加载模块开始

mysql - 无法使用 DBI 将记录插入 MySQL 数据库

java - HashMap如何保证使用key的hashcode计算出的索引在可用范围内?

JavaScript 'redirect' 没有页面重新加载

python - Pandas :按集合中包含的字段过滤

计算下一个 ASCII 字符的 Linux 命令或 Bash 语法

windows - 从 Perl 运行批处理文件(Windows 中的 Activestate perl)

python - 如何在不使用 Flask-Security 的情况下验证它生成的哈希值?