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

相关文章

Spring IoC 容器的使用详解(最新整理)

《SpringIoC容器的使用详解(最新整理)》文章介绍了Spring框架中的应用分层思想与IoC容器原理,通过分层解耦业务逻辑、数据访问等模块,IoC容器利用@Component注解管理Bean... 目录1. 应用分层2. IoC 的介绍3. IoC 容器的使用3.1. bean 的存储3.2. 方法注

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方

解析C++11 static_assert及与Boost库的关联从入门到精通

《解析C++11static_assert及与Boost库的关联从入门到精通》static_assert是C++中强大的编译时验证工具,它能够在编译阶段拦截不符合预期的类型或值,增强代码的健壮性,通... 目录一、背景知识:传统断言方法的局限性1.1 assert宏1.2 #error指令1.3 第三方解决

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

Python的端到端测试框架SeleniumBase使用解读

《Python的端到端测试框架SeleniumBase使用解读》:本文主要介绍Python的端到端测试框架SeleniumBase使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录SeleniumBase详细介绍及用法指南什么是 SeleniumBase?SeleniumBase

全屋WiFi 7无死角! 华硕 RP-BE58无线信号放大器体验测评

《全屋WiFi7无死角!华硕RP-BE58无线信号放大器体验测评》家里网络总是有很多死角没有网,我决定入手一台支持Mesh组网的WiFi7路由系统以彻底解决网络覆盖问题,最终选择了一款功能非常... 自2023年WiFi 7技术标准(IEEE 802.11be)正式落地以来,这项第七代无线网络技术就以超高速

python多线程并发测试过程

《python多线程并发测试过程》:本文主要介绍python多线程并发测试过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、并发与并行?二、同步与异步的概念?三、线程与进程的区别?需求1:多线程执行不同任务需求2:多线程执行相同任务总结一、并发与并行?1、

SpringIOC容器Bean初始化和销毁回调方式

《SpringIOC容器Bean初始化和销毁回调方式》:本文主要介绍SpringIOC容器Bean初始化和销毁回调方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录前言1.@Bean指定初始化和销毁方法2.实现接口3.使用jsR250总结前言Spring Bea

如何高效移除C++关联容器中的元素

《如何高效移除C++关联容器中的元素》关联容器和顺序容器有着很大不同,关联容器中的元素是按照关键字来保存和访问的,而顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的,本文介绍了如何高效移除C+... 目录一、简介二、移除给定位置的元素三、移除与特定键值等价的元素四、移除满足特android定条件的元

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

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