【发布时间】:2018-06-14 03:17:10
【问题描述】:
我目前面临的问题可能是由于我在此类问题上缺乏经验。
我需要一个键值容器,键是唯一的特定值和原始类型(双精度)的值。我的应用程序将为每个候选者构造一个这种类型的容器,并将存储该候选者被识别为特定类型的概率(双精度值)(实际上是枚举的 Key 值)。
然后,我将需要以最高概率对其进行排序,并从每个容器中选择最高的候选者,同时从其他每个容器中删除所选类型。
谢谢。
编辑:关于这个问题的更多解释。
我有一张图像,通过图像分析我发现了几个对象。这些对象将与一个类型匹配,算法返回该对象属于该类型的概率。想象一下,我只有 3 个对象和 3 种类型,我将有 3 个容器,每个对象一个:
对象 A
类型 1 - 95%
类型 2 - 87%
类型 3 - 15%
对象 B
类型 2 - 85%
类型 1 - 23%
类型 3 - 5%
对象 C
类型 3 - 91%
类型 1 - 10%
类型 2 - 1%
如您所见,我会以 3 个容器结束,现在我会看看谁更适合这些类型。由于每个容器的最高概率为 95%(对于对象 A),我现在将说对象 A 属于类型 1。我将继续从其他容器中删除该键的所有条目。现在我会:
对象 B
类型 2 - 85%
类型 3 - 5%
对象 C
类型 3 - 91%
类型 2 - 1%
该操作将被重复。最高概率是对象 C 上的类型 3,有 91%,所以我现在对象 C 属于类型 1。我现在将删除剩余容器中所有类型 1 的候选对象,并以:
对象 B
类型 2 - 85%
对象 B 现在将以类型 2 结束。
【问题讨论】:
-
::std::map 怎么样?如果键的范围是有限的,你可以只用键作为偏移量的数组。
-
C++ 标准库有containers。
-
@VTT 除了它是按键而不是数据排序的(这似乎是 OP 想要的)。
-
我无法按值排序。但是,我可以将其转换为另一种类型,但是从其他候选列表中删除所选类型的时间效率很低。
标签: c++ containers