opencv中排序Key-Value对结构sorted_vector
来源:互联网 发布:linux mysql数据迁移 编辑:程序博客网 时间:2024/06/04 19:49
sorted_vector是OpenCVS中定义的一个用于键值对Key-Value的结构,在进行排序和检索中使用它可以大大提高开发效率,其结构:
sing std::pair;template<typename _KeyTp, typename _ValueTp> struct sorted_vector{ sorted_vector() {} void clear() { vec.clear(); } size_t size() const { return vec.size(); } _ValueTp& operator [](size_t idx) { return vec[idx]; } const _ValueTp& operator [](size_t idx) const { return vec[idx]; } void add(const _KeyTp& k, const _ValueTp& val) { pair<_KeyTp, _ValueTp> p(k, val); vec.push_back(p); size_t i = vec.size()-1; for( ; i > 0 && vec[i].first < vec[i-1].first; i-- ) std::swap(vec[i-1], vec[i]); CV_Assert( i == 0 || vec[i].first != vec[i-1].first ); } bool find(const _KeyTp& key, _ValueTp& value) const { size_t a = 0, b = vec.size(); while( b > a ) { size_t c = (a + b)/2; if( vec[c].first < key ) a = c+1; else b = c; } if( a < vec.size() && vec[a].first == key ) { value = vec[a].second; return true; } return false; } void get_keys(vector<_KeyTp>& keys) const { size_t i = 0, n = vec.size(); keys.resize(n); for( i = 0; i < n; i++ ) keys[i] = vec[i].first; } vector<pair<_KeyTp, _ValueTp> > vec;};
如下是一个根据输入sorted_vector及关键字,查找键值的函数:
template<typename _ValueTp> inline const _ValueTp* findstr(const sorted_vector<string, _ValueTp>& vec, const char* key){ if( !key ) return 0; size_t a = 0, b = vec.vec.size(); while( b > a ) { size_t c = (a + b)/2; if( strcmp(vec.vec[c].first.c_str(), key) < 0 ) a = c+1; else b = c; } if( ( a < vec.vec.size() ) && ( strcmp(vec.vec[a].first.c_str(), key) == 0 )) return &vec.vec[a].second; return 0;}
0 0
- opencv中排序Key-Value对结构sorted_vector
- (key,value)对value进行排序
- Spark中sortByKey和sortBy对(key,value)数据分别 根据key和value排序
- Spark中sortByKey和sortBy对(key,value)数据分别 根据key和value排序
- java中根据value对key进行排序
- map 对key 或 value排序
- java中按key-value存储,并按value排序
- HashMap对value(不是Key)的排序方法(转载)
- java对HashMap中的key或者value值进行排序!
- 分别根据key和value对HashMap进行排序
- STL 对map的key和value进行大小排序
- java对HashMap中的key或者value值进行排序!
- 基于Key-Value对的排序(Java版)
- java对HashMap中的key或者value值进行排序
- iOS 对字典的key,value进行排序
- 对Map里面的key和value按字母排序
- 对Map的key和value进行排序
- 对Map的key和value进行排序
- Android Volley完全解析(四),带你从源码的角度理解Volley
- (十三)洞悉linux下的Netfilter&iptables:为防火墙增添功能模块【实战】
- JSP页面如何显示本地图片
- hdu 4023 Doubloon Game(博弈)
- Benchmark Test On Android Devices
- opencv中排序Key-Value对结构sorted_vector
- dbms_stats
- 简要分析武汉一起好P2P平台的核心功能
- 【Java Web】Myeclipse下运用maven管理项目jar包
- 利用Java程序将字符串进行排序与拼接
- SQL CASE WHEN
- Xcode6 编译SDWebImage报错解决方案
- jQuery.TreeView的使用介绍及其改进
- VS2010在调试时产生断点错位怎么解决