假设我有分量向量(每个分量都是一个浮点向量)
vector<vector<float> > components
我有一个数据向量(每个数据都是一个与组件大小相同的浮点向量)
vector< vector<float> > data
以及与此数据相关的标签
vector<string> labels
(这里我的意思label[i]
是 的标签data[i]
)。我还有一个距离函数,它返回两个向量之间的距离
float distance(vector<float> v1, vector<float> v2);
我想根据与该组件关联的数据中出现最多的标签给每个组件一个标签;即如下:
for each data d from data
{
let c the nearest component from d according to distance.
associate the label of d to c.
}
for each component c
{
definitely give to c the label that occur the most among labels associated to it
// example if labels {l1,l2,l1,l2,l1,l1,l1,l8,l1} were associated to c, then its label should be l1
}
应该返回的最终结果是一个标记组件的向量(对<component,label>
),描述为:
vector< pair< vector<float>, string > > labeledComponents.
在 C++ 中简单快捷的方法是什么?