《BOOST程序库完全开发指南》 第04章 实用工具


类型自动推导:

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

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

int main()
{
    BOOST_TYPEOF(2.1*3) x = 2.1*3;
    BOOST_AUTO(y,2.1*3); //我感觉 BOOST_AUTO 更好用些。第一个参数是左值,第二个>参数是右值。
    BOOST_AUTO(vect,func());
    cout<<x<<"\n"<<y<<"\n"<<vect.size()<<endl;  //不过用了自动推导之后,TAGS智能提示就不能用了,可以理解。
}

快速向容器中增加数据:

#include <iostream>
#include <boost/assign.hpp>
#include <vector>

using namespace std;
using namespace boost::assign; //必须要使用 using 指示符,只有这样才能让重载的 += 操作符在作用域内生效

int main()
{
    vector<int> vect1,vect2;
    vect1 += 1,2,3,4,5,10*2;
    cout<<"vect1's size is: "<<vect1.size()<<endl;
    for(int i = 0; i < vect1.size();i++)
    {
        cout<<vect1[i]<<endl;
    }

push_back(vect2)(
5)(15)(25)(35); //push_back(vect2),5,15,25,35; cout<<"vect2's size is: "<<vect2.size()<<endl; for(int i = 0; i < vect2.size();i++) { cout<<vect2[i]<<endl; } vector<int> vect3 = list_of(100)(200)(300)(400); cout<<"vect3's size is: "<<vect3.size()<<endl; for(int i = 0;i < vect3.size();i++) { cout<<vect3[i]<<endl; } }

交换元素或数组:

#include <iostream>
#include <boost/swap.hpp>

int main()
{
    int a1[3] = {1,2,3};
    int a2[3] = {4,5,6};
    boost::swap(a1,a2);
    for(int i=0;i<3;i++)
    {
        std::cout<<a1[i]<<std::endl;
    }
}

优质内容筛选与推荐>>
1、net平台下连接池
2、Windows读写文件的猫腻
3、子框架控制父框架中其他子框架
4、百度伦敦奥运会答题答案
5、最新android NDK 下载地址 for Windows


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn