zoukankan      html  css  js  c++  java
  • 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");
    }
  • 相关阅读:
    JS定时刷新页面及跳转页面
    javascript 使用btoa和atob来进行Base64转码和解码
    浏览器好玩的的 console.log
    Jmeter(二十三)Jmeter-Question之“批量造数据”
    性能测试---开发世界的狂野一面
    Jmeter(二十二)Jmeter-Question之“不同线程组之间传递变量”
    Jmeter(二十一)Jmeter常见问题及场景应用
    Jmeter(二十)Beanshell or JSR223
    Jmeter(十九)Logic Controllers 之 Module Controller and Include Controller
    Jmeter(十八)Logic Controllers 之 Random Controller and Random order Controller
  • 原文地址:https://www.cnblogs.com/rollenholt/p/2418676.html
Copyright © 2011-2022 走看看