zeromq源码学习——array
来源:互联网 发布:烽火体育淘宝 编辑:程序博客网 时间:2024/06/11 03:56
zeromq实现了一个可以快速访问,插入,删除的数组,该数组只保存指针类型。所有可以保存在数组中的元素需要继承自array_item_t<ID>。ID参数可以用于把同一个对象指针保存在不同的数组中。
//仅仅保存了该元素在数组中的索引template <int ID = 0> class array_item_t{public: inline array_item_t () :array_index (-1) { } inline virtual ~array_item_t () { } inline void set_array_index (int index_) { array_index = index_; } inline int get_array_index () { return array_index; }private: int array_index; array_item_t (const array_item_t&); const array_item_t &operator = (const array_item_t&);};
数组array_t中真实数据保存在一个std::vector数组中:
typedef std::vector <T*> items_t;items_t items;
插入数据,直接在数组最后压入:
inline void push_back (T *item_){ if (item_) ((item_t*) item_)->set_array_index ((int) items.size ()); items.push_back (item_);}
主要是数据快速删除操作:
inline void erase (T *item_) { erase (((item_t*) item_)->get_array_index ());}inline void erase (size_type index_) { //将数组最后一个元素index设为要被移除位置 if (items.back ()) ((item_t*) items.back ())->set_array_index ((int) index_); //最后一个元素覆盖被移除数据 items [index_] = items.back (); //移除最后一个元素 items.pop_back ();}
阅读全文
0 0
- zeromq源码学习——array
- zeromq源码学习——yqueue
- zeromq源码学习——ypipe
- zeromq源码学习——ctx创建
- zeromq应用学习(1)——编译zeromq的示例程序
- zeromq 学习
- zeroMQ学习
- zeromq学习
- zeromq 学习
- ZeroMQ 学习
- ZeroMQ学习
- zeromq源码阅读 —— Msg.hpp & Msg.cpp 的 msg_t (zmq中的消息)
- ZeroMQ 源码阅读
- nginx 源码学习笔记(八)——基本容器——array数组
- nginx 源码学习笔记(八)——基本容器——array数组
- ZeroMQ,史上最快的消息队列 —– ZMQ的学习和研究
- ZeroMQ,史上最快的消息队列 —– ZMQ的学习和研究
- ZeroMQ,史上最快的消息队列 —– ZMQ的学习和研究
- wget 下载需要用户名和密码访问的网站资源
- QML在ListView中获取和更改代理中的指定元素
- Java单元测试工具:JUnit4(一)——概述及简单例子
- spring 环境配置
- 【修真院“善良”系列之十八】WEB程序员从零开始到就业的全资料V1.0——只看这一篇就够了!
- zeromq源码学习——array
- 彻底学会使用epoll(二)——ET和LT的触发方式
- js返回上一页方法
- 关于Pgpool安装时:libpq is not installed or libpq is old解决方案
- JS如何获取URL 参数
- C语言中不同类型数据之间的赋值
- Java的多态
- 欢迎使用CSDN-markdown编辑器
- 如何在Android Studio中快速的写javabean的set和get方法