摘要: 标准库还定义了一个 multimap 容器,它与 map 类似,所不同的是它允许重复键。 成员函数 insert() make_pair() 辅助函数来完成此任务。 find(k) 返回指向第一个与键 k 匹配的 pair 的迭代指针, count(k) 成员函数返回与给定键关联的值得数量。 low 阅读全文
posted @ 2018-06-20 23:28 osbreak 阅读(710) 评论(0) 推荐(0) 编辑
摘要: 构造函数 deque<Elem> c 创建一个空的deque deque<Elem> c1(c2) 复制一个deque。 deque<Elem> c(n) 创建一个deque,含有n个数据,数据均已缺省构造产生。 deque<Elem> c(n, elem) 创建一个含有n个elem拷贝的deque 阅读全文
posted @ 2018-06-20 23:17 osbreak 阅读(533) 评论(0) 推荐(0) 编辑
摘要: std::map的底层实现是基于红黑树的,这是一种高度平衡的二叉搜索树。这种数据结构使得map在进行查找时的效率非常高。此外,map的插入操作对其他节点的干扰非常小,这得益于它在插入新节点时会通过哈希函数找到相应的位置,然后更新链表,从而避免了整个树结构的移动。 + 键值对存储:以键作为唯一标识符, 阅读全文
posted @ 2018-06-20 23:10 osbreak 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2018-06-20 22:57 osbreak 阅读(856) 评论(0) 推荐(0) 编辑
摘要: 1、vector是表示可变大小数组的序列容器。 2、就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。 3、但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。4、capacity()返回 vector 阅读全文
posted @ 2018-06-20 22:50 osbreak 阅读(279) 评论(0) 推荐(0) 编辑
摘要: set集合容器实现了红黑树(Red-Black Tree)的平衡二叉检索树的的数据结构, 在插入元素时,它会自动调整二叉树的排列,把该元素放到适当的位置,以确保每个子树根节点的键值大于左子树所有节点的键值,而小于右子树所有节点的键值; 另外,还得确保根节点的左子树的高度与有字数的高度相等, 这样,二 阅读全文
posted @ 2018-06-20 22:38 osbreak 阅读(769) 评论(0) 推荐(0) 编辑
摘要: boost中有一些分散的单例实现,能够独立摘出来用的主要有以下四个:尤其以前两个为主。 boost/container/detail/singleton.hpp boost/serialization/singleton.hpp boost/thread/detail/singleton.hpp b 阅读全文
posted @ 2018-06-20 21:57 osbreak 阅读(1479) 评论(0) 推荐(0) 编辑
摘要: 同步TCP通信服务端 #include <boost/asio.hpp> #include <iostream> using namespace boost::asio; int main() { try { io_service io; ip::tcp::endpoint ep(ip::tcp:: 阅读全文
posted @ 2018-06-20 21:51 osbreak 阅读(205) 评论(0) 推荐(0) 编辑
摘要: Boost.Asio是一个跨平台的网络及底层IO的C++编程库,它使用现代C++手法实现了统一的异步调用模型。 头文件: #include <boost/asio.hpp> 名空间: using namespace boost::asio; ASIO库能够使用TCP、UDP、ICMP、串口来发送/接 阅读全文
posted @ 2018-06-20 21:36 osbreak 阅读(1241) 评论(0) 推荐(0) 编辑
摘要: 1、boost::thread类就代表一个可执行的线程。缺省构造函数创建一个代表当前执行线程的实例。 2、在类内部创建线程 3、绑定函数对象 4、如果要求start()和hello()方法不能是静态方法则采用下面的方法创建线程: 5、用类内部函数在类外部创建线程 6、每个线程都处理属于自己的数据实例 阅读全文
posted @ 2018-06-20 17:24 osbreak 阅读(440) 评论(0) 推荐(0) 编辑