本文整理汇总了C++中svector::find方法的典型用法代码示例。如果您正苦于以下问题:C++ svector::find方法的具体用法?C++ svector::find怎么用?C++ svector::find使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类svector
的用法示例。
在下文中一共展示了svector::find方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: intersect
void intersect(const svector<F,V>& y, Op& op) const {
// can't do bounded search with std::map, otherwise we would do double binary search
// these thresholds have not been well optimized
if (m.size() < 0.1*y.size()) {
for (const_iterator xit=m.begin(); xit != m.end(); ++xit) {
const_iterator yit = y.find(xit->first);
if (yit != y.end())
op(xit->first, xit->second, yit->second);
}
} else if (0.1*m.size() > y.size()) {
for (const_iterator yit=y.begin(); yit != y.end(); ++yit) {
const_iterator xit = m.find(yit->first);
if (xit != m.end())
op(yit->first, xit->second, yit->second);
}
} else {
const_iterator xit = m.begin();
const_iterator yit = y.begin();
while (xit != m.end() && yit != y.end()) {
if (xit->first > yit->first) {
++yit;
} else if (xit->first < yit->first) {
++xit;
} else {
op(xit->first, xit->second, yit->second);
++xit; ++yit;
}
}
}
}