`

boost assign

阅读更多
#include<boost/assign.hpp>
#include<vector>
#include<set>
#include<string>
#include<utility>
#include<iostream>
using namespace std;
using namespace boost::assign;

template <typename T>
void print(const T& t)
{
    typename T::const_iterator iter;
    for(iter=t.begin();iter!=t.end();++iter)
        cout << *iter << " ";
    cout << endl;
}

template<>
void print(const map<int,string>& m)
{
    map<int,string>::const_iterator iter;
    for(iter=m.begin();iter!=m.end();++iter)
        cout << iter->first << " " << iter->second << " ";
    cout << endl;
}

int main(){
    //operator+=很好用,但仅限于STL中定义的标准容器(vector,list,set...)
    vector<int> v;
    v += 1,2,3,4,5,6*6;
    print(v);
    set<string> s;
    s += "cpp","java","c#","python";
    print(s);

    map<int,string> m;
    m += make_pair(1,"one"),make_pair(2,"two");
    print(m);

    //push_back()
    vector<int> v2;
    push_back(v2)(1)(2)(3)(4)(5);
    print(v2);

    //push_front
    list<string> l;
    push_front(l)("cpp")("java")("c#")("python");
    print(l);

    //insert
    set<double> s2;
    insert(s2)(3.14)(0.324)(2.32);
    print(s2);

    map<int,string> m2;
    insert(m2)(1,"one")(2,"two");
    print(m2);
}

1 2 3 4 5 36 
c# cpp java python 
1 one 2 two 
1 2 3 4 5 
python c# java cpp 
0.324 2.32 3.14 
1 one 2 two 


也支持list_of
#include<boost/assign.hpp>
#include"printT.h"
#include<string>
#include<deque>
using namespace std;
using namespace boost::assign;
int main()
{
    vector<int> v = list_of(1)(2)(3)(4)(5);
    print(v);

    deque<string> d = list_of("power")("bomb")("phazon")("suit");
    print(d);

    set<int> s = (list_of(10),20,30,40,50,60);
    print(s);

    map<int,string> m = list_of(make_pair(1,"one"))(make_pair(2,"two"));
    print(m);
}

1 2 3 4 5 
power bomb phazon suit 
10 20 30 40 50 60 
1 one 2 two 
分享到:
评论

相关推荐

    Boost库学习指南与使用说明

    1. **容器赋值—assign**:分析`boost::assign`如何简化容器的初始化和赋值操作。 2. **型别分类器—type_traits**:探讨`boost::type_traits`如何实现类型属性和操作的元编程。 3. **泛型指针类any**:研究`boost::...

    Boost 库入门.chm.zip

    2. **容器和算法(Containers and Algorithms)**:Boost库扩展了标准模板库(STL),提供了如`multi_index_container`、`flat_map`等高级容器,以及`assign`、`lambda`等算法工具,增强了代码的灵活性和可读性。...

    Boost库学习指南.pdf

    - **具体组件文档**:例如Boost.Assign、Boost.Regex和Boost.Array等组件的文档,详细介绍了各个组件的功能和使用方法。 - **源码分析**:对Boost库的部分源码进行了深度解析,帮助高级用户理解其内部实现机制。 ##...

    boost入门-了解boost库函数的文档

    3. Boost.Assign文档:这个组件提供了简单且类型安全的方式来初始化容器,如std::vector和std::list等。 4. Boost.Regex文档:提供了用于正则表达式的强大工具,支持复杂的文本匹配和搜索功能,极大地方便了处理...

    C++准标准库Boost介绍

    6. **输入输出**:如Assign简化赋值操作,Filesystem管理文件系统,Format实现格式化输出,locale_state_savers处理本地化状态,Serialization实现序列化和反序列化,以及日期时间处理库Date_time。 7. **综合工具*...

    Boost 库中文版

    3. **算法**(Algorithms):Boost提供了一套扩展的算法库,如`assign`用于快速填充容器,`algorithm`包含各种字符串处理和排序算法。 4. **函数对象**(Function Objects):例如`function`和`bind`,它们允许将...

    c++资源Boost库及指南

    9. **Boost.Assign**:简化了容器初始化的过程。 10. **Boost.Tuple**:提供了一种更灵活的数据结构来存储多个不同类型的值。 #### 三、Boost库的安装与配置 - **Windows平台**:可以通过预编译的二进制包进行安装...

    boost 1.41 中文文档,使用帮助,教程手册

    汉化 boost 文档,致力 boost 推广。 如果你对本项目有兴趣,欢迎加入,相关说明请查阅项目论坛: https://groups.google.com/ 到目前为止,各人贡献的译文如下: 贡献者 贡献的译文 alai04 accumulators, any, ...

    boost_1_45

    - **算法库**(Algorithms):如foreach、assign、bind等,增强了C++的编程便利性。 - **泛型编程**(Generic Programming):如mpl(Meta-Programming Library)、function、lambda等,使得元编程和函数对象更加...

    boost1.35中文帮助

    2. **容器和算法**:如`multi_array`用于多维数组操作,`foreach`循环宏简化迭代器的使用,`assign`库用于快速填充容器等。 3. **函数对象和绑定**:如`bind`和`function`库,使得函数可以像对象一样被传递和存储,...

    Boost.org分配模块.zip

    在这个压缩包文件“assign-develop”中,我们可以期待找到与Boost分配模块相关的开发源代码和文档,帮助我们深入理解并利用这些高级内存管理工具。 Boost分配模块主要包含以下几个关键组件: 1. **Pool Allocation...

    boost doc.chm

    4. **容器和算法** (Containers and Algorithms):如multi_array提供了多维数组,assign库简化了容器的初始化,algorithm库扩展了标准库的算法。 5. **线程与并发** (Concurrency):如thread库提供了线程管理和同步...

    boost概览 pdf

    ### Boost库概览 Boost库,作为C++标准库(STL)的有力补充,旨在增强C++语言的功能性与实用性。自1998年成立以来,Boost库由一群热心的开发者共同维护与扩展,逐渐成为了C++社区中最受欢迎的开源项目之一。Boost库...

    downloads.part1.rar

    boost-1.70.0.tar.gz boostorg-any-boost-1.70.0.tar.gz boostorg-array-boost-1.70.0.tar.gz boostorg-asio-boost-1.70.0.tar.gz boostorg-assert-boost-1.70.0.tar.gz boostorg-assign-boost-1.70.0.tar.gz ...

    downloads.part3.rar

    boost-1.70.0.tar.gz boostorg-any-boost-1.70.0.tar.gz boostorg-array-boost-1.70.0.tar.gz boostorg-asio-boost-1.70.0.tar.gz boostorg-assert-boost-1.70.0.tar.gz boostorg-assign-boost-1.70.0.tar.gz ...

    downloads.part2.rar

    boost-1.70.0.tar.gz boostorg-any-boost-1.70.0.tar.gz boostorg-array-boost-1.70.0.tar.gz boostorg-asio-boost-1.70.0.tar.gz boostorg-assert-boost-1.70.0.tar.gz boostorg-assign-boost-1.70.0.tar.gz ...

    C++之Boost::array用法简介

    - `void assign(const T& value);`:用给定的值填充整个数组,等同于`std::fill_n()`。 6. 特殊算法: - Boost::array还支持一些特殊算法,例如`std::swap`和`std::fill_n`,使得操作更加方便。 总的来说,Boost...

    json_spirit:C ++ JSON库,包括json-data-structure和解析器(基于Boost.Spirit)。 目标

    json精神使用Boost.Spirit V2和X3进行解析的json库。 json精神库的主要目标是创建一个一致的json解析器,该解析器生成一个json对象,可以像在javascript或python中一样对其进行操作。快速范例 // the json::value is...

    boostc++lib勉强.zip

    2. **容器与算法**:Boost提供了一些扩展的容器,如`multi_array`(多维数组)和`property_tree`(属性树),以及增强的算法,如`assign`库用于快速填充容器。 3. **函数式编程**:Boost提供了一系列工具,如`bind`...

Global site tag (gtag.js) - Google Analytics