【发布时间】:2013-10-28 11:39:46
【问题描述】:
我有两个向量vector<DataPoint> data和vector<string> labels,其中DataPoint 只是一个浮点向量:typedef vector<float> DataPoint。每个数据点data[i] 都有其关联的标签labels[i]。
有什么方法可以快速获取给定数据点x 的标签? string getLabel(DataPoint x){..} 之类的东西很快。
【问题讨论】:
-
“快”是什么意思?
-
@ForEveR 我的意思是,不浏览向量
data是为了搜索x的索引i,然后标签是labels[i]。这并不快。 -
@shn:我想你的意思是:
DataPoint只是一个浮点向量,不是吗? -
@lolando 是的,我认为
typedef vector<float> DataPoint很清楚 -
This thread 可能会有所帮助:散列每个浮点向量,然后将与
labels[i]关联的每个结果值hash(data[i])插入std::unordered_map<size_t, TYPE_OF_LABELS>,如table[hash(data[i])] = labels[i]。这将授予您O(1)搜索。