当前位置: 首页 > news >正文

Boost中的一些实用技术

类型推断:

#include <iostream>
#include <vector>
#include <string>
#include <boost/typeof/typeof.hpp>
using namespace std;

vector<string> func(){
	vector<string> v(10);
	return v;
}

int _tmain(int argc, _TCHAR* argv[])
{	
	BOOST_TYPEOF(2.0) x=2.0*3;
	BOOST_AUTO(years,2+3);

	BOOST_AUTO(&a , new double[11]);
	BOOST_AUTO(p , new string("hello"));

	BOOST_AUTO(v , func());
	return 0;
}

不能复制的类

#include<boost/utility.hpp>
using namespace std;

//不能复制的类
class demo : public boost::noncopyable{

};

int _tmain(int argc, _TCHAR* argv[])
{	
	demo a;
	demo b;
	//a=b;
	//a(b);
	return 0;
}

//向typeof注册自定义类型

#include <iostream>
#include <vector>
#include <string>
#include<boost/typeof/typeof.hpp>
#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
using namespace std;

//向typeof注册自定义类型
// 
namespace ex{
	class demo_class{
		int a,b;
	};
}
BOOST_TYPEOF_REGISTER_TYPE(ex::demo_class)

int _tmain(int argc, _TCHAR* argv[])
{	
	BOOST_AUTO(x, make_pair("test",ex::demo_class()));
	cout<<typeid(x).name()<<endl;
}

赋值:

#include <iostream>
#include <vector>
#include <string>
#include <set>
#include <map>
#include <boost/assign.hpp>

int _tmain(int argc, _TCHAR* argv[])
{	
	using namespace boost::assign;
	std::vector<int>v;
	v+=1,2,3,4,5,9*10;

	std::set<std::string> s;
	s+="cpp","java","c","python";

	std::map<int,std::string>m;
	m+=std::make_pair(1,"hello"),std::make_pair(2,"rollen");

}
#include <iostream>
#include <vector>
#include <string>
#include <set>
#include <list>
#include <map>
#include <boost/assign.hpp>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{	
	using namespace boost::assign;
	std::vector<int>v;
	push_back(v)(1)(2)(3)(4);
	push_back(v),1,2,3,4,5;
	push_back(v),1,(2),3;


	list<int> l;
	push_front(l)(1)(2);

	set<double>s;
	insert(s)(12.23)(1.23);

	map<int,string>m;
	insert(m)(1,"name")(2,"age");
}

相关文章:

  • uWSGI参考资料(1.0版本的配置选项列表)
  • 数据产品设计专题(2)-数据产品设计方法论
  • 某些书籍翻译的太屎了,误导人!
  • js
  • 服务模拟-ServiceMock
  • 超链接点击一次就失效不能再点击
  • #Java异常处理
  • 1.请求安全-- 一个简单的 单设备登录 单点登录
  • CST UTC
  • 在CentOS上安装与配置Tomcat
  • Modular Multiplicative Inverse(模乘逆元)
  • 线程同步辅助类——CountDownLatch
  • Java中的并发工具
  • ShareSDK的使用文章
  • Linux查看程序端口占用情况
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • [case10]使用RSQL实现端到端的动态查询
  • [NodeJS] 关于Buffer
  • 【刷算法】从上往下打印二叉树
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • Android框架之Volley
  • github从入门到放弃(1)
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • JSDuck 与 AngularJS 融合技巧
  • Python socket服务器端、客户端传送信息
  • Redis中的lru算法实现
  • vue-router 实现分析
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 蓝海存储开关机注意事项总结
  • 悄悄地说一个bug
  • 如何在 Tornado 中实现 Middleware
  • 设计模式 开闭原则
  • 设计模式走一遍---观察者模式
  • 双管齐下,VMware的容器新战略
  • 一文看透浏览器架构
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • ​LeetCode解法汇总518. 零钱兑换 II
  • #ifdef 的技巧用法
  • #LLM入门|Prompt#3.3_存储_Memory
  • #单片机(TB6600驱动42步进电机)
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (2)STL算法之元素计数
  • (2)STM32单片机上位机
  • (26)4.7 字符函数和字符串函数
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (二)WCF的Binding模型
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (四)Linux Shell编程——输入输出重定向
  • (学习日记)2024.01.09