许多时候,我们需要为容器初始化或者赋值,填入大量的数据;
  STL容器仅提供了容纳这些数据的方法,但是填充的步骤是相当地麻烦(insert、push_back);
  于是,boost::assign出现了,其重载了+= ,()等运算符,用难以想象的简洁对STL容器初始化或赋值.
  +=很好用,但是仅适用于STL的标准容器,对于boost新容器却无能为力;
  ()可以更灵活实现对容器的初始化;
  容器构造的时候就对数据进行填充list_of等.

 C++ Code 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
 
/*
    许多时候,我们需要为容器初始化或者赋值,填入大量的数据;
    STL容器仅提供了容纳这些数据的方法,但是填充的步骤是相当地麻烦(insert、push_back);
    于是,boost::assign出现了,其重载了+= ,()等运算符,用难以想象的简洁对STL容器初始化或赋值.

+=很好用,但是仅适用于STL的标准容器,对于boost新容器却无能为力;
    ()可以更灵活实现对容器的初始化;
    容器构造的时候就对数据进行填充list_of等.
*/

/************************************************************************/
/* C++ stl Library                                                        */
/************************************************************************/
#include <iostream>
#include <string>
#include <vector>
#include <set>
#include <map>

/************************************************************************/
/* C++ boost Library                                                   */
/************************************************************************/
#include "boost/assign.hpp"

using namespace boost::assign;
using namespace std;

int main(void)
{
    //operator+=
    vector<int> vec;
    vec += ;

set<string> s;
    s += "c","c++","java","c#";

map<int,string> mInfo;
    mInfo += make_pair(,"James");

//operator()
    vector<int> v1;
    push_back(v1) ();

map<int,string> maps;
    insert(maps) (,"West");

vector<int> v2;
    push_back(v2), ;
    
    //list_of map_list_of/pair_list_of (tuple_list_of)
);
    set<);
    map<);
    map<,"bbb");
    
    //减少重复输入 repeat repeat_fun range
);

//更多内容请感兴趣研究
    //list_of的嵌套使用list_of(list_of())
    //引用初始化列表ref_list_of()  cref_list_of()
    //...

cin.get();
    ;
}

boost实用工具:assign库了解学习的更多相关文章

  1. C++ 之Boost 实用工具类及简单使用

    本文将介绍几个 Boost 实用工具类,包括 tuple.static_assert.pool.random 和 program_options等等.需要对标准 STL 具备一定的了解才能充分理解本文 ...

  2. JavaScript和CSS实用工具、库与资源

    JavaScript和CSS实用工具.库与资源 JavaScript 库 Particles.js  - 一个用于在网页上创建漂亮的浮动粒子的 JS 库: Three.js  - 用于在网页上创建 3 ...

  3. boost实用工具:typeof库 BOOST_TYPE BOOST_AUTO

    boost::typeof库中使用宏BOOST_TYPE和BOOST_AUTO来模拟C++11关键字typeof和auto  C++ Code  123456789101112131415161718 ...

  4. 67 个JavaScript和CSS实用工具、库与资源

    在这篇文章中,我不会与大家谈论大型的前端框架,如 React.Angular.Vue 等,也没有涉及那些流行的代码编辑器,如 Atom.VS Code.Sublime,我只想与大家分享一个有助于提升开 ...

  5. boost实用工具:创建一个禁止复制的类 noncopyable

    boost的noncopyable允许创建一个禁止复制的类,使用很简单,但很好用!  C++ Code  12345678910111213141516171819202122232425262728 ...

  6. Lodash JavaScript 实用工具库

    地址:https://www.lodashjs.com/ Lodash 是一个一致性.模块化.高性能的 JavaScript 实用工具库.

  7. SQL cmd 实用工具学习 -1

    启动 sqlcmd 实用工具并连接到 SQL Server 的默认实例 在"开始"菜单上,单击"运行". 在"打开"框中,键入 cmd,然后 ...

  8. 几个经典的数学库之一学习---VCGlib(2)

    几个经典的数学库之一学习---VCGlib(2) 1. Optional Component(可选的组件) 有许多Vertex和Face的属性并不是一直都是必要的,如Face-Face的邻接关系.VC ...

  9. 值得网页设计师&前端收藏的实用工具列表

    原文地址:http://www.uisdc.com/tool-list-web-developers# 无论你是经验丰富的前端,还是刚刚起步的设计师,这些为真正的网页设计师和开发者所准备的实用工具.在 ...

随机推荐

  1. 【Linux】行首、行尾添加字符串

    在行首或者行尾添加字符串的方式有以下2种 环境描述 test.txt文件内容如下: hello world Qinys 要求:在每一行的行首添加AAA,行尾添加666 VIM编辑状态添加 首先使用命令 ...

  2. ROC

    # -*- coding: utf-8 -*- # __author__ = "JieYao" from biocluster.agent import Agent from bi ...

  3. 阿里云 oss python3 样例

    阿里云的oss SDK又是不支持python3,头疼头疼. 本想改一改它的SDK,让它支持python2+python3,无奈里面大量的代码使用不带括号的print.工作量恐怖. 幸好oss的使用很e ...

  4. myBatis的引出

    jdbc 优点:简单易学,上手快,非常灵活构建sql,效率高. l缺点:代码繁琐,难以写出高质量的代码(资源的释放,SQL注入安全性等),开发者关注多,又要写业务逻辑,又要关注对象的创建和销毁. Hi ...

  5. OGNL表达式语言网上转来的

    1.概念:OGNL是ObjectGraphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目. Struts 2框架使用OGNL作为默认的表达式语言. 2.功能: ...

  6. css定位positon

    值 描述 absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位. 元素的位置通过 "left", "top", " ...

  7. centos终端显示-bash-4.2#解决方法

    登录linux系统过后,发现显示的是-bash-4.2# 而不是root@主机名 + 路径的显示方式,发生这种情况的原因是根目录下缺失几个配置文件,从默认配置中拷贝过来就可以解决了: cp /etc/ ...

  8. mysql联合查询union

    mysql联合查询,对多表进行组合查询 使用 UNION ALL 命令实例 显示所有 使用UNION 过滤重复的 使方法 select * from (SELECT id,name as usenam ...

  9. Atitit.导出excel功能的设计 与解决方案

    Atitit.导出excel功能的设计 与解决方案 1.1. 项目起源于背景1 1.2. Js  jquery方案(推荐)jquery.table2excel1 1.3. 服务器方案2 1.4. 详细 ...

  10. atitit.项目设计模式---ioc attilax总结

    atitit.项目设计模式---ioc attilax总结 1. .IOC的之前 1 2. ioc后的实现 1 3. 认识引入IOC框架的缺点, 2 4. 自己实现ioc 3 4.1. ioc框架的实 ...