2
究竟做了編譯器裝置,這個:解密UPPER_BOUND與reverse_iterator的STL錯誤
c:\usr\mingw\bin\../lib/gcc/mingw32/4.6.2/include/c++/bits/stl_algo.h: In function '_FIter std::upper_bound(_FIter, _FIter, const _Tp&) [ with _FIter = std::reverse_iterator< __gnu_cxx::__normal_iterator<ModelItem*, std::vector<ModelItem> > >, _Tp = Model::close_active(int)::<lambda(const t_item&)> ]': model.cpp:58:3: instantiated from here c:\usr\mingw\bin\../lib/gcc/mingw32/4.6.2/include/c++/bits/stl_algo.h:2461:4: error: no match for 'operator<' in '__val < __middle.std::reverse_iterator<_Iterator>::operator* [ with _Iterator = __gnu_cxx::__normal_iterator<ModelItem*, std::vector<ModelItem> >, std::reverse_iterator<_Iterator>::reference = ModelItem& ]()'
對於這個和平的代碼:
t_itemlist::reverse_iterator rit = std::upper_bound(
m_itemlist.rbegin(), m_itemlist.rend(),
[&at](const t_item& item){ return item.at > at; }
);
我想用反向迭代器。
(SO形成問我用文字添加更多細節,問題是它過於意見更多的代碼,但我不知道該說什麼了。)
謝謝,看來我也錯過了'upper_bound'的'value' PARAM。 – user394010