Matlab中等价于C++ std::set的数据结构

6

我该如何在Matlab中定义一个拥有以下属性的set

  • 唯一的项
  • 高效的搜索
  • 有序

也许Matlab没有内置的容器,那么我该如何结合一些内容来实现与C++中的std::set相同的功能呢?

1个回答

7
您可以像这样使用Java的HashSet:
>> x = java.util.HashSet;
>> x.add(1);
>> x.add(2);
>> x.contains(1)
ans = 
     1
>> x.contains(3)
ans = 
     0
>> x
x = 
[2.0, 1.0]

在评论中指出HashSet无序。这是完全正确的。我错了!您可以使用TreeSet代替,它是有序的:

>> x = java.util.TreeSet;
>> x.add(1);
>> x.add(3);
>> x.add(2);
>> x
x = 
[1.0, 2.0, 3.0]

1
一个哈希集合应该是无序的,对吗? - juanchopanza
@juanchopanza 确实,已修复。 - Chris Taylor
我们难道不是在寻找Matlab的解决方案吗? - user40780
@user40780 这是一个MATLAB解决方案(上面的>>是MATLAB提示符) - Chris Taylor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接