boost 容器tuple 信号signal2测试

2024-05-10 08:48

本文主要是介绍boost 容器tuple 信号signal2测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//#include "pch.h"
#include"stdio.h"
#include<iostream>
#include<string>
using namespace std;#include<boost/unordered_map.hpp>
#include<boost/assign.hpp>
#include<boost/unordered_set.hpp>
#include<boost/tuple/tuple_comparison.hpp>
#include<boost/tuple/tuple_io.hpp>
#include<boost/tuple/tuple.hpp>
#include<boost/signals2.hpp>
#include<boost/thread.hpp>
#include<boost/shared_ptr.hpp>
#include<boost/make_shared.hpp>
#include<boost/bind.hpp>
#include<boost/date_time/posix_time/posix_time.hpp>
#include<thread>
using namespace boost::posix_time;
using namespace boost;
using namespace boost::assign;
boost::tuple<int, string, double> function()
{return boost::make_tuple(2, string("1344"), 4.4444);
}
void slots1(int a)
{cout << "....slot 1:" << a <<"id" << std::this_thread::get_id() << endl;
}
void slots2(int a)
{cout << "....slot 2:" << a <<"id" << std::this_thread::get_id() <<endl;
}
void run(boost::shared_ptr < signals2::signal<void(int)>> ptr)
{boost::this_thread::sleep(posix_time::seconds(5));cout << "wrork thread id" << std::this_thread::get_id() << endl;(*ptr)(1);
}
int main(int argc, char* argv[]) 
{ unordered_map<int, string> map = //主要是效率高于std::mapmap_list_of(1,"one")(2,"two")(3,"three");map.insert(make_pair(4, "three"));map.insert(make_pair(4, "three"));cout << map[1] << endl;cout << map.size() << endl;map.erase(2);cout << map.count(1) << endl;cout << "--------unordered_set------" << endl;unordered_set<int> set = (list_of(1), 2, 3, 4, 5);cout << "-------boost::tuple-------" << endl;typedef struct  A{int a;double d;bool operator< (A &b) {return this->a < b.a;}}A;//tuple 可以存储最多10种不同类型的元素boost::tuple<int, string, double> tuple_1;tuple_1 = { 1,"one",1.1 };//数据获取cout << tuple_1.get<0>() << endl;cout << tuple_1.get<2>()<< endl;//使用比较必须包含#include<boost/tuple/tuple_comparison.hpp>boost::tuple<int, string, double> tuple_(1, "two", 2.8);assert(tuple_1 < tuple_);//使用比较必须包含#include<boost/tuple/tuple_io.hpp>cout << tuple_ <<tuple_1<<endl;//连接变量 boost::tie()int i;string str;boost::tie(i, str) = make_pair(1, string("12457654"));double d;tie(i, str, d) = boost::tuple<int,string,double>(boost::make_tuple(1, string("abc"), 3.333));cout<<"i=" << i << "str=" << str << endl;cout << "signals2" << endl;boost::shared_ptr< signals2::signal<void(int)> > sig= boost::make_shared<signals2::signal<void(int)>>();sig->connect(slots1);sig->connect(slots2);boost::thread work(boost::bind(run, sig));cout << "main thread id" << work.get_id() << endl;work.join();(*sig)(4);}

 

这篇关于boost 容器tuple 信号signal2测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/975979

相关文章

如何将Tomcat容器替换为Jetty容器

《如何将Tomcat容器替换为Jetty容器》:本文主要介绍如何将Tomcat容器替换为Jetty容器问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat容器替换为Jetty容器修改Maven依赖配置文件调整(可选)重新构建和运行总结Tomcat容器替

C++从序列容器中删除元素的四种方法

《C++从序列容器中删除元素的四种方法》删除元素的方法在序列容器和关联容器之间是非常不同的,在序列容器中,vector和string是最常用的,但这里也会介绍deque和list以供全面了解,尽管在一... 目录一、简介二、移除给定位置的元素三、移除与某个值相等的元素3.1、序列容器vector、deque

C++常见容器获取头元素的方法大全

《C++常见容器获取头元素的方法大全》在C++编程中,容器是存储和管理数据集合的重要工具,不同的容器提供了不同的接口来访问和操作其中的元素,获取容器的头元素(即第一个元素)是常见的操作之一,本文将详细... 目录一、std::vector二、std::list三、std::deque四、std::forwa

Python容器类型之列表/字典/元组/集合方式

《Python容器类型之列表/字典/元组/集合方式》:本文主要介绍Python容器类型之列表/字典/元组/集合方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 列表(List) - 有序可变序列1.1 基本特性1.2 核心操作1.3 应用场景2. 字典(D

SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程

《SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程》本文详细介绍了如何在虚拟机和宝塔面板中安装RabbitMQ,并使用Java代码实现消息的发送和接收,通过异步通讯,可以优化... 目录一、RabbitMQ安装二、启动RabbitMQ三、javascript编写Java代码1、引入

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Go语言中三种容器类型的数据结构详解

《Go语言中三种容器类型的数据结构详解》在Go语言中,有三种主要的容器类型用于存储和操作集合数据:本文主要介绍三者的使用与区别,感兴趣的小伙伴可以跟随小编一起学习一下... 目录基本概念1. 数组(Array)2. 切片(Slice)3. 映射(Map)对比总结注意事项基本概念在 Go 语言中,有三种主要

使用C++将处理后的信号保存为PNG和TIFF格式

《使用C++将处理后的信号保存为PNG和TIFF格式》在信号处理领域,我们常常需要将处理结果以图像的形式保存下来,方便后续分析和展示,C++提供了多种库来处理图像数据,本文将介绍如何使用stb_ima... 目录1. PNG格式保存使用stb_imagephp_write库1.1 安装和包含库1.2 代码解

Spring核心思想之浅谈IoC容器与依赖倒置(DI)

《Spring核心思想之浅谈IoC容器与依赖倒置(DI)》文章介绍了Spring的IoC和DI机制,以及MyBatis的动态代理,通过注解和反射,Spring能够自动管理对象的创建和依赖注入,而MyB... 目录一、控制反转 IoC二、依赖倒置 DI1. 详细概念2. Spring 中 DI 的实现原理三、

无线路由器哪个品牌好用信号强? 口碑最好的三个路由器大比拼

《无线路由器哪个品牌好用信号强?口碑最好的三个路由器大比拼》不同品牌在信号覆盖、稳定性和易用性等方面各有特色,如何在众多选择中找到最适合自己的那款无线路由器呢?今天推荐三款路由器让你的网速起飞... 今天我们来聊聊那些让网速飞起来的路由器。在这个信息爆炸的时代,一个好路由器简直就是家庭网编程络的心脏。无论你