【发布时间】:2014-08-13 07:02:06
【问题描述】:
我想从大图中搜索小图,我的算法是:
- 搜索第一行
- 如果第一行匹配,则比较其余行
我想使用 boost::algorithm::boyer_moore 来进行行搜索,它与 std::string: 一起工作正常:
#include <string>
using namespace std;
#include "boost/algorithm/searching/boyer_moore.hpp"
using namespace boost::algorithm;
int main() {
string s;
boyer_moore<string::iterator> bm(s.begin(), s.end()); // it compiles
}
代码可以编译,但这个没有:
#include "boost/mpl/vector.hpp"
using namespace boost;
#include "boost/gil/gil_all.hpp"
using namespace boost::gil;
#include "boost/algorithm/searching/boyer_moore.hpp"
using namespace boost::algorithm;
int main() {
typedef rgba8_image_t image_t;
typedef image_t::view_t view_t;
view_t vw;
boyer_moore<view_t::x_iterator> bm(vw.row_begin(0), vw.row_end(0)); // compile error
}
两个都是迭代器,第二个有什么问题?
谢谢。
【问题讨论】:
-
在包含它们之前通过
using namespace扭曲包含是非常不寻常的,尤其是对于 TMP-heavy 库(因为它们通常依赖 ADL 进行名称查找)
标签: c++ boost boost-gil boyer-moore