2013-08-16 58 views
-2

我有一个Point2F矢量,std::vector<Point2F> vxy;。长度为70000行。 我有另一个Point2F变量为Point2F var;。我喜欢在vxy verctor中快速搜索var,并且返回值是向量的匹配索引。我认为std::lower_bound,但它只适用于像int这样的普通数据类型。如何实现类似于Point2F类型的搜索算法? 感谢在C++中快速搜索Point2f矢量

+1

在标准库中最有序的数据类型或搜索你只需要实现你的类'<'操作。 – paddy

+0

您可否详细说明一下 – batuman

回答

1

随着在Point2F超载operator ==,您可以使用std::find算法。

std::vector<Point2F>::iterator it = std::find(vxy.begin(), vxy.end(), var); 

if (it != vxy.end()) 
{ 
    int index; 
    index = it - vxy.begin(); 
}